[Java] Mettere in ordine i comandi in una shell

poll89
Ciao a tutti, ecco il mio problema. Come parte di un progetto su Eclipse (sviluppato usando le librerie swt) devo creare una shell divisa in due colonne, ed in ciascuna colonna mettere un certo numero di comandi. Ho molti più comandi nella colonna di sinistra, quindi se non specifico in qualche modo la loro posizione nella shell mi finiscono mischiati tra di loro ed è un macello :roll: :roll: :roll: . C'è un modo per dire a ciascun comando in quale colonna posizionarsi all'interno della shell?

Risposte
apatriarca
Potresti dare qualche informazione in più? Non ho capito cosa intendi con mettere dei comandi in una shell.

poll89
Per comandi intendo i "children" della shell (come li chiamano i javadoc), quindi oggetti quali Button e Text. Ad esempio ho

private Shell shell = new Shell(Display.getDefault());
GridLayout gridLayout = new GridLayout();
		gridLayout.numColumns = 2;
		shell.setLayout(gridLayout);

Text ascissa = new Text(shell, SWT.BORDER);

Button addVertex = new Button(shell, SWT.BORDER);



così facendo però la shell conterrà una casella di testo nella colonna di sinistra ed un pulsante nella colonna di destra sulla stessa riga. Io invece vorrei dirgli, in qualche modo, di mettere il Button sotto alla casella di testo.
Può essere utile usare un RowLayout? L'ho trovato proprio ora facendo qualche ricerca ma non so come si usi.

apatriarca
Non ho mai usato SWT e il termine Shell per indicare delle finestre dell'applicazione non è particolarmente comune. In effetti una shell è normalmente altro. In situazioni del genere si inserisce un qualche controllo figlio il cui unico scopo è quello di contenere i controlli che vuoi inserire ordinati in un modo particolare. Non conoscendo SWT non so dirti che cosa usare (forse un Group?).

poll89
MMM, temo di non sapere cosa sia un Group... è una classe di java? Non la trovo nei javadoc...

Davvero non è comune usare il termine Shell per indicare le finestre? dalla documentazione ho letto che un'istanza di Shell è proprio una finestra... ma forse questo vale solo per SWT. Per curiosità, cosa intendi tu normalmente per Shell? Così potrò spiegarmi meglio in futuro.

apatriarca
Per me una shell è quella che su wikipedia chiama shell testuale. Tutti i framework per realizzare GUI che ho utilizzato usano il termine Window o Dialog per le finestre (Dialog viene usato solo per le finestre secondarie). C'è inoltre spesso un controllo, chiamato normalmente Panel o qualcosa del genere, che ha l'unico scopo di contenere altri controlli.

SWT non è comunque una libreria standard di Java.. Le librerie standard per realizzare GUI in Java sono AWT e Swing e usano entrambe la terminologia di cui ho scritto sopra.

La classe Group è documentata qui.

poll89
lo so che Swing è la libreria standard per scrivere GUI in java ma il mio professore ha dogmaticamente deciso di utilizzare SWT nelle sue lezioni e quindi io ho dovuto imparare ad usare SWT per passare l'esame. A quando pare in SWT una shell, tramite il metodo open(), apre da sè la sua Window e ci si piazza dentro. Il javadoc di SWT relativo a shell recita

Instances of this class represent the "windows" which the desktop or "window manager" is managing

capirai quindi la mia confusione. Ma vabbè. Ti ringrazio per l'aiuto :D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.