Ancora problemi con il GridBagLyout.
Utilizzando il .setMinimumSize su alcuni componenti, sono riuscito a sistemarmi l'interfaccia grafica su un pannello come mi piace.
Il problema arriva quando faccio la stessa cosa su un secondo pannello, i cui componenti sono disposti allo stesso identico modo (cambiano solo le descrizioni e le funzioni).
Ho fatto il secondo codice con ctrl+C e ctrl+V, cambiando i nomi. Ma nel secondo pannello le dimensioni dei componenti sono un po' a caso.
Ci metto qualche spezzone di codice
(Questo funziona come voglio)
codice:
panel1 = new JPanel();
panel1.setLayout( new GridBagLayout() );
GridBagConstraints c = new GridBagConstraints();
String element1[] = new String[0];
elenco1 = new JComboBox( element1 );
elenco1.setMaximumRowCount( 5 );
elenco1.addItemListener( this );
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 3;
c.insets = new Insets(10, 10, 5, 10);
panel1.add( elenco1, c);
String element2[] = new String[0];
lista1 = new JList( element2 );
lista1.setVisibleRowCount( 5 );
lista1.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
lista1.addListSelectionListener( this );
scrollerlista1 = new JScrollPane( lista1,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollerlista1.setMinimumSize( new Dimension( 150, 100) );
c.fill = GridBagConstraints.NONE;
c.gridx = 0;
c.gridy = 1;
c.gridheight = 3;
c.gridwidth = 1;
c.weightx = 0;
c.weighty = 0;
c.insets = new Insets(5, 10, 5, 5);
panel1.add( scrollerlista1, c);
button1 = new JButton( "Firma" );
button1.addActionListener( this );
button1.setMinimumSize( dimButton );
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.NORTHWEST;
c.gridx = 1;
c.gridy = 1;
c.gridheight = 1;
c.gridwidth = 1;
c.weightx = 0;
c.weighty = 0;
c.insets = new Insets(5, 5, 4, 5);
panel1.add( button1, c);
... e così via. Aggiungo solo altri bottoni e una JTextArea
Invece, questo codice non mi da lo stesso risultato
codice:
panel2 = new JPanel();
panel2.setLayout( new GridBagLayout() );
GridBagConstraints c = new GridBagConstraints();
String element1[] = new String[0];
elenco2 = new JComboBox( element1 );
elenco2.setMaximumRowCount( 5 );
elenco2.addItemListener( this );
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 3;
c.weightx = 1;
c.weighty = 0;
c.insets = new Insets(10, 10, 5, 10);
panel2.add( elenco2, c);
String element2[] = new String[0];
lista2 = new JList( element2 );
lista2.setVisibleRowCount( 5 );
lista2.setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
lista2.addListSelectionListener( this );
scrollerlista2 = new JScrollPane( lista2,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollerlista2.setMinimumSize( new Dimension( 150, 100) );
c.fill = GridBagConstraints.NONE;
c.gridx = 0;
c.gridy = 1;
c.gridheight = 3;
c.gridwidth = 1;
c.weightx = 0;
c.weighty = 0;
c.insets = new Insets(5, 10, 5, 5);
panel2.add( scrollerlista2, c);
button2 = new JButton( "Crea Pacchetto" );
button2.addActionListener( this );
button2.setMinimumSize( dimButton );
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.NORTHWEST;
c.gridx = 1;
c.gridy = 1;
c.gridheight = 1;
c.gridwidth = 1;
c.weightx = 0;
c.weighty = 0;
c.insets = new Insets(5, 5, 4, 5);
panel2.add( button2, c);
Inutile dire che è la quarta o quinta volta che gioco al "cerca le differenze tra i due codici" e non trovo la soluzione.