si allora avevo capito bene, grazie mille
si allora avevo capito bene, grazie mille
@andbin ho un problema con il server e il client, mi invia l'oggetto,tutto ok, ma dopo aver inviato un oggetto mi chiude il programma e non capisco perchè, vi passo il codice così potete dargli un occhiata, grazie in anticipo(ovviamente chiunque altro volesse aiutarmi è sempre ben accetto)
vi allego il file del programma, essendo che il codice da mettere sul forum è troppo lungo e quindi non me lo fa inserire, le classi che entrano in gioco per il client server sono client,server,multi,e servermulty, grazie ancora dell'aiuto
https://mega.co.nz/#!pAUCEaAT!9aATWo...H2ExDgtJKWnf7M
Ho dato una occhiata veloce al codice. Diciamo che è parecchio "inguardabile" ma stasera, max domani, lo guardo meglio.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ahahahahah grazie mille, lascia perdere se ci sono errori vari in altre classi, quelli li risolverò in seguito,il problema per ora è nelle classi che ti ho detto, grazie ancora
Mi riferivo più che altro a tutto il codice fumoso e noioso generato da NetBeans, che è una delle cose che ho notato subito.
Comunque ho anche notato dei tuoi while che contengono codice di comunicazione dentro i jButtonXXXActionPerformed. Neanche questo è particolarmente buono!
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok allora aspetto che dai un occhiata più approfondita appena hai tempo![]()
Ho dato una occhiata un po' meglio ai sorgenti. Una cosa che noto è che in Client hai un isConnected che inizialmente è false, quindi all'inizio effettivamente istanzia il Socket ecc... Ma una volta che isConnected è diventato true, se invochi altre volte il communicate, esso non fa più nulla!
Poi scusa ma che vuol dire
client.communicate(cane);
a cui segue subito dopo
cane = server.communicate();
?? La tua applicazione cosa è? Client e server insieme?
Comunque, per finire, te lo dico sinceramente ma senza voler offendere o che: il codice è parecchio lontano da qualunque standard minimo di scrittura del codice.
Già solo una cosa tipo:
è totalmente illeggibile e non-mantenibile.codice:if(((n1.getIcon()==scelta1||n1.getIcon()==scelta2)&&n1.getIcon()==n2.getIcon()&&n2.getIcon()==n3.getIcon())|| ((n4.getIcon()==scelta1||n4.getIcon()==scelta2)&&n4.getIcon()==n5.getIcon()&&n5.getIcon()==n6.getIcon())|| ((n7.getIcon()==scelta1||n7.getIcon()==scelta2)&&n7.getIcon()==n8.getIcon()&&n8.getIcon()==n9.getIcon())|| ((n1.getIcon()==scelta1||n1.getIcon()==scelta2)&&n1.getIcon()==n4.getIcon()&&n4.getIcon()==n7.getIcon())|| ((n2.getIcon()==scelta1||n2.getIcon()==scelta2)&&n2.getIcon()==n5.getIcon()&&n5.getIcon()==n8.getIcon())|| ((n3.getIcon()==scelta1||n3.getIcon()==scelta2)&&n3.getIcon()==n6.getIcon()&&n6.getIcon()==n9.getIcon())|| ((n1.getIcon()==scelta1||n1.getIcon()==scelta2)&&n1.getIcon()==n5.getIcon()&&n5.getIcon()==n9.getIcon())|| ((n3.getIcon()==scelta1||n3.getIcon()==scelta2)&&n3.getIcon()==n5.getIcon()&&n5.getIcon()==n7.getIcon()))
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
nono anzi grazie, ogni critica è sempre bene accetta, e che come forse avrai capito sono uno studente di informatica, e non sapevo in che altro modo fare quella serie di confronti,comunque si forse l'errore è nel client(quello di isconnect), ora provo e ti dico, ah e teoricamente l'applicazione dovrebbe prima inviare l'oggetto al server che lo utilizza e manda un altro oggetto al client con nuovi parametri(non so se è giusto ma pensavo andasse bene), comunque potresti perfavore farmi un esempio di che altro modo potrei fare quella serie di confronti? grazie mille di tutto(critiche comprese)
Io inizierei a ripensare questo
Definisci un vettore (o lista) di bottoni, perchè farne 8 identici? E stesso discorso per il resto.codice:bn3 = new javax.swing.JButton(); bn1 = new javax.swing.JButton(); bn2 = new javax.swing.JButton(); bn6 = new javax.swing.JButton(); bn4 = new javax.swing.JButton(); bn5 = new javax.swing.JButton(); bn9 = new javax.swing.JButton(); bn7 = new javax.swing.JButton(); bn8 = new javax.swing.JButton();
Potrai poi iterare con un ciclo su tutti gli elementi!
Scusa, spiego meglio, ti appoggi a metodi "autocompilati" dalla form, e quindi "perdi il controllo" dei componenti visuali.
Magari qualcuno più esperto di Java può suggerirti un approccio migliore
Ultima modifica di MySQL; 06-06-2015 a 17:56
si sulla prima parte hai completamente ragione, infatti avevo intenzione di farlo in seguito verso fine progetto, perchè a farlo ora avevo paura di "autoincasinarmi" ancora di più aggiungendo vettori e cicli quando ancora non sapevo nemmeno io bene dove volevo andare a parare XD la seconda parte invece non ti seguo, cosa intendi con perdi il controllo del codice appoggiandoti a metodi della form? potresti spiegarti meglio perfavore? grazie ancora