ho messo solo un pezzo, gli altri metodi sono simili.codice:public class GestioneMenu { public Hashtable<String,String> ht1 = new Hashtable<String,String>(); public Hashtable<String,String> ht2 = new Hashtable<String,String>(); public Hashtable<String,String> ht3 = new Hashtable<String,String>(); public String comodo; public int var1=0; public int var2=0; public int progre=0; public String key1; public String key2; public String key3; public String righeMenu[][][]; public String value1; public String value2; public String value3; public int codice4; public int riga4; public String descrizio4; public int codice3; public int riga3; public String descrizio3; public int codice2; public int riga2; public String descrizio2; public int codice1; public int riga1; public String descrizio1; public int codice0; public int riga0; public String descrizio0; public int interrogazione; public String comodokey; public GestioneMenu() { var1=0; var2=0; ht1.clear(); ht2.clear(); ht3.clear(); } public String[][][] CreaMenu(ResultSet records){ try { while (records.next()) { codice4=records.getInt("COD_MENU_L4"); riga4=records.getInt("RIGA_MENU_L4"); descrizio4=records.getString("DESCRIZIONE_L4"); codice3=records.getInt("COD_MENU_L3"); riga3=records.getInt("RIGA_MENU_L3"); descrizio3=records.getString("DESCRIZIONE_L3"); codice2=records.getInt("COD_MENU_L2"); riga2=records.getInt("RIGA_MENU_L2"); descrizio2=records.getString("DESCRIZIONE_L2"); codice1=records.getInt("COD_MENU_L1"); riga1=records.getInt("RIGA_MENU_L1"); descrizio1=records.getString("DESCRIZIONE_L1"); codice0=records.getInt("COD_MENU_L0"); riga0=records.getInt("RIGA_MENU_L0"); descrizio0=records.getString("DESCRIZIONE_L0"); interrogazione=records.getInt("INTER_INTERROGAZ"); if (codice4 != 0) { AggiungiCod4(codice4,riga4,descrizio4,codice3,riga3,descrizio3,codice2,riga2,descrizio2,codice1,riga1,descrizio1,codice0,riga0,descrizio0,interrogazione); } if ((codice3 != 0) && (codice4 == 0)) { AggiungiCod3(codice3,riga3,descrizio3,codice2,riga2,descrizio2,codice1,riga1,descrizio1,codice0,riga0,descrizio0,interrogazione); } if (codice2 != 0 && codice3 == 0 && codice4 == 0) { AggiungiCod2(codice2,riga2,descrizio2,codice1,riga1,descrizio1,codice0,riga0,descrizio0,interrogazione); } if (codice1 != 0 && codice2 == 0 && codice3 == 0 && codice4 == 0) { AggiungiCod1(codice1,riga1,descrizio1,codice0,riga0,descrizio0,interrogazione); } if (codice0 != 0 && codice1 == 0 && codice2 == 0 && codice3 == 0 && codice4 == 0) { AggiungiCod0(codice0,riga0,descrizio0,interrogazione); } } } catch( Exception e ) { System.err.println("Eccezione if null: " + e.getMessage()); } righeMenu = new String[ht1.size()][ht1.size()][ht1.size()]; int a=0; Enumeration en = ht1.keys(); while (en.hasMoreElements()) { key1 = (String)en.nextElement(); value1 = (String)ht1.get(key1); value2 = (String)ht2.get(key1); value3 = (String)ht3.get(key1); righeMenu[a][0][0]=value3; righeMenu[a][1][0]=value1; righeMenu[a][1][1]=value2; a++; } return righeMenu; } public void AggiungiCod4(int cod4,int riga4,String descr4,int cod3,int riga3,String descr3,int cod2,int riga2,String descr2,int cod1,int riga1,String descr1,int cod0,int riga0,String descr0,int interroga){ key1 = String.valueOf(cod4) + "|" + String.valueOf(riga4) + "|" + descr4; key2 = key1; key3 = key1; if (ht1.containsKey(key1) == true){ try{ comodo = (String)ht2.get(key2); comodo += ","+String.valueOf(interroga); ht2.put(key2,comodo); comodokey=(String)ht3.get(key2); key1 = String.valueOf(cod3) + "|" + String.valueOf(riga3) + "|" + descr3; key2 = key1; key3 = key1; if (ht1.containsKey(key1)==true){ comodo = (String)ht2.get(key2); comodo += ","+String.valueOf(interroga); ht2.put(key2,comodo); comodokey=(String)ht3.get(key2); }else{ ht1.put(key1,descr3); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(comodokey.substring(0,comodokey.indexOf("|"))); ht3.put(key3,comodo); } key1 = String.valueOf(cod2) + "|" + String.valueOf(riga2) + "|" + descr2; key2 = key1; key3 = key1; if (ht1.containsKey(key1)==true){ comodo = (String)ht2.get(key2); comodo += ","+String.valueOf(interroga); ht2.put(key2,comodo); comodokey=(String)ht3.get(key2); }else{ ht1.put(key1,descr2); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(comodokey.substring(0,comodokey.indexOf("|"))); ht3.put(key3,comodo); } key1 = String.valueOf(cod1) + "|" + String.valueOf(riga1) + "|" + descr1; key2 = key1; key3 = key1; if (ht1.containsKey(key1)==true){ comodo = (String)ht2.get(key2); comodo += ","+String.valueOf(interroga); ht2.put(key2,comodo); comodokey=(String)ht3.get(key2); }else{ ht1.put(key1,descr1); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(comodokey.substring(0,comodokey.indexOf("|"))); ht3.put(key3,comodo); } key1 = String.valueOf(cod0) + "|" + String.valueOf(riga0) + "|" + descr0; key2 = key1; key3 = key1; if (ht1.containsKey(key1)==true){ comodo = (String)ht2.get(key2); comodo += ","+String.valueOf(interroga); ht2.put(key2,comodo); comodokey=(String)ht3.get(key2); }else{ ht1.put(key1,descr0); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(comodokey.substring(0,comodokey.indexOf("|"))); ht3.put(key3,comodo); } } catch (NullPointerException e) { System.err.println("Eccezione HT4m: " + e.getMessage()); } }else{ try{ progre++; ht1.put(key1,descr4); ht2.put(key2,String.valueOf(interroga)); var1=progre; comodo = String.valueOf(var1) + "|0"; ht3.put(key3,comodo); key1 = String.valueOf(cod3) + "|" + String.valueOf(riga3) + "|" + descr3; key2 = key1; key3 = key1; ht1.put(key1,descr3); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(var1); ht3.put(key3,comodo); var1=progre; key1 = String.valueOf(cod2) + "|" + String.valueOf(riga2) + "|" + descr2; key2 = key1; key3 = key1; ht1.put(key1,descr2); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(var1); ht3.put(key3,comodo); var1=progre; key1 = String.valueOf(cod1) + "|" + String.valueOf(riga1) + "|" + descr1; key2 = key1; key3 = key1; ht1.put(key1,descr1); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(var1); ht3.put(key3,comodo); var1=progre; key1 = String.valueOf(cod0) + "|" + String.valueOf(riga0) + "|" + descr0; key2 = key1; key3 = key1; ht1.put(key1,descr0); ht2.put(key2,String.valueOf(interroga)); progre++; comodo = String.valueOf(progre) + "|" + String.valueOf(var1); ht3.put(key3,comodo); } catch (NullPointerException e){ System.err.println("Eccezione HT4i: " + e.getMessage()); } } }