04/11/14 21:15
GN
Salve a tutti, è da un po' che non riesco a risolvere un problema con il GridBagLayout. Ho cercato e provato vari metodi ma niente, non riesco a capire come fare. In pratica io ho scritto questo codice
Da cui ottengo questo risultato: i.imgur.com/…
Il problema è che vorrei che la JList (che nell'immagine contiene un elemento con scritto "ciao" fosse più larga (dovrebbe occupare metà del contenitore) e i pulsanti e i JSpinner più piccoli.
Ho cercato varie guide sul GridBagLayout e ho scoperto che è abbastanza complesso... il mio problema centra forse con la distribuzione dei "pesi" (weightx, weighty)? Perchè quelli proprio non ho capito come funzionano... ho provato ad agire sul controllo (con setSize, setMinimunSize) ma niente il risultato è sempre quello.
Qualcuno saprebbe gentilmente indicarmi dove sbaglio e come potrei risolvere? Grazie
JPanel polyEditorPanel = new JPanel(); JList polyVertices = new JList(polyVerticesModel); JButton polyAddVertex = new JButton("Add vertex"); JButton polyRemoveVertex = new JButton("Remove vertex"); JSpinner polyVertexX = new JSpinner(); JSpinner polyVertexY = new JSpinner(); JButton polyEditVertex = new JButton("Edit"); //... polyEditorPanel.setLayout(new GridBagLayout()); GridBagConstraints gc = new GridBagConstraints(); gc.fill = GridBagConstraints.BOTH; gc.gridwidth = 3; gc.gridheight = 2; //gc.weightx = 0.5; gc.anchor = gc.WEST; polyEditorPanel.add(polyVertices, gc); gc.anchor = gc.EAST; //gc.weightx = 1; gc.gridwidth = 1; gc.gridheight = 1; gc.gridx = 3; gc.gridy = 0; polyEditorPanel.add(polyAddVertex, gc); gc.gridx = 4; polyEditorPanel.add(polyRemoveVertex, gc); gc.gridx = 3; gc.gridy = 1; polyEditorPanel.add(polyVertexX, gc); gc.gridx = 4; polyEditorPanel.add(polyVertexY, gc); gc.gridx = 5; polyEditorPanel.add(polyEditVertex, gc);
Da cui ottengo questo risultato: i.imgur.com/…
Il problema è che vorrei che la JList (che nell'immagine contiene un elemento con scritto "ciao" fosse più larga (dovrebbe occupare metà del contenitore) e i pulsanti e i JSpinner più piccoli.
Ho cercato varie guide sul GridBagLayout e ho scoperto che è abbastanza complesso... il mio problema centra forse con la distribuzione dei "pesi" (weightx, weighty)? Perchè quelli proprio non ho capito come funzionano... ho provato ad agire sul controllo (con setSize, setMinimunSize) ma niente il risultato è sempre quello.
Qualcuno saprebbe gentilmente indicarmi dove sbaglio e come potrei risolvere? Grazie
aaa