Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    4

    [java] Problema nell'implementazione della GUI

    Ciao a tutti, sono nuovo quindi spero di non infrangere alcuna regola del forum... Il mio problema è il seguente: dovrei progettare un programmino in java per la gestione del FUTOSHIKI (variante del sudoku). Quindi devo creare parecchi JTextField (sia per i numeri che per i segni)... Non so come organizzare il tutto perchè in numero di JTextField per riga non è sempre uguale come anche la loro dimensione (i numeri hanno bisogno di un campo più grande rispetto ai segni)... Come posso fare a creare un JFrame con tutti i JTextField posizionati correttamente?
    Ho una discreta esperienza nella programmazione di algoritmi ma con la GUI purtroppo non ho molta esperienza...

  2. #2
    Moderatrice di Grafica, Cerco e offro lavoro L'avatar di Myaku
    Registrato dal
    Nov 2006
    Messaggi
    10,349
    ti sposto in programmazione


  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] Problema nell'implementazione della GUI

    Originariamente inviato da p3pp0n5
    dovrei progettare un programmino in java per la gestione del FUTOSHIKI (variante del sudoku).
    So cos'è, anche se non ci ho mai giocato.

    Originariamente inviato da p3pp0n5
    Quindi devo creare parecchi JTextField (sia per i numeri che per i segni)...
    Alt, se vuoi anche dare la possibilità all'utente di editare, cioè di creare/modificare un Futoshiki, ok è un conto. Ma non credo che ti convenga usare un JTextField per editare i segni!

    In una fase di editing vedrei sensato l'uso di un JButton (magari togliendo i vari padding) con un Icon che mostra o una immaginetta vuota o di una delle 4 frecce (cliccando sul pulsante fai scegliere cosa mettere).
    In fase di gioco, sempre dei Icon ma in JLabel che non è editabile/gestibile dall'utente.

    Originariamente inviato da p3pp0n5
    Non so come organizzare il tutto perchè in numero di JTextField per riga non è sempre uguale come anche la loro dimensione (i numeri hanno bisogno di un campo più grande rispetto ai segni)...
    La questione più critica e da valutare secondo me è come dimensionare i componenti text-field dei numeri. Sarebbe bello, chiaramente, che fossero quadrati e tutti uguali.
    Ci sono diverse possibilità ma dipende se vuoi imporre tu una dimensione in pixel es. 40x40 al componente oppure se preferisci che sia derivata dalla dimensione del contenitore diviso N parti eque o ancora altra logica.

    Per disporre i componenti, la prima cosa che mi viene in mente è l'uso del layout manager chiamato GridBagLayout. Se non lo conosci, è un po ostico da usare all'inizio, ma se capisci la filosofia, diventa relativamente facile da usare.
    Se hai dubbi su GridBagLayout o altro, chiedi pure.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    4
    Inannazi tutto grazie della risposta!
    Il JTextField mi serve anche per i segni, l'obiettivo del progetto è quello di poter inserire a piacere un certo numero di numeri e segni e poi il programma deve risolvere il FUTOSHIKI e mostrare un certo numero di soluzioni... ovviamente sviluppare l'algoritmo che lo risolva e affar mio, il problema come ho già spiegato è la GUI.
    Forse l'ideale sarebbe poter gestire a piacimento sia la dimensione che la posizione di ogni singolo JTextField anche se facendo due conti dovrei impostare le coordinate di ben 65 JTextField che è un lavoro che richiede un bel pò di pazienza...
    Comunque il GridBagLayout non lo conosco, vedrò di approfondire l'argomento nella speranza che come dici tu mi sia utile.
    Se hai altri consigli sono tutto orecchie.

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da p3pp0n5
    Il JTextField mi serve anche per i segni
    E cosa metti come segni? Immagino < > v ^. Sono questi che intendi far usare? Io, detto proprio onestamente, sono sempre dell'idea dei JButton.

    Originariamente inviato da p3pp0n5
    dovrei impostare le coordinate di ben 65 JTextField che è un lavoro che richiede un bel pò di pazienza...
    Se usi il "posizionamento assoluto", sì. Ma se usi un layout manager non devi dare coordinate ... devi specificare dei "vincoli" secondo le modalità del layout manager.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    4
    Grazie per i tuoi preziosi consigli... sto studiando il GridBagLayout che assieme al GridBagConstraints fanno proprio al caso mio... Da qui credo di riuscire a cavarmela da solo... Per quanto riguarda l'uso dei JButton per i segni sono un pò indeciso, mi piacerebbe sapere se c'è un modo per ruotare di 90° un JTextField così da poter usare solo i segni < > e farli apparire in verticale (stesso discorso vale anche nel caso in cui decida di utilizzare i JButton)...

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da p3pp0n5
    mi piacerebbe sapere se c'è un modo per ruotare di 90° un JTextField
    No, non è possibile: componenti, eventi, layout manager ecc.. hanno un "concetto" delle coordinate che non si può sovvertire in tal senso.

    Se tu avessi un tuo componente custom su cui disegni sopra sul suo Graphics2D, allora sì, puoi disegnare testo e figure con qualunque angolazione e orientamento. Ma i componenti di per sé non li puoi ruotare.

    Originariamente inviato da p3pp0n5
    stesso discorso vale anche nel caso in cui decida di utilizzare i JButton)...
    Ma no, basta farsi, con un qualunque programma di grafica, 4 (anzi 5 se ne vuoi una che indica "vuoto") immaginette di tot pixel x pixel.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    4
    Ok, i tuoi consigli mi sono stati utilissimi!!! Grazie di tutto!!! Penso che non avrò più problemi... :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.