Ho messo i miei bottoni in un JPane con GridLayout. Quindi ho inserito JPanel in un altro JPanel con BoxLayout.Y_AXIS. Voglio che i pulsanti di GridLayout siano quadrati. Io uso tmp.setSize (30,30) e non funziona. Cerco anche di usare new GridLayout(X, Y, 4, 4)
ma non riesco a capire cosa siano X e Y. Quindi, qual è il modo corretto di fare questa roba?Come posso impostare la dimensione di un pulsante?
aggiunto:
io ancora non riesco a risolvere il problema. Ecco il codice di quello che sto cercando di fare:
import javax.swing.*;
import java.awt.*;
public class PanelModel {
public static void main(String[] args) {
JFrame frame = new JFrame("Colored Trails");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel firstPanel = new JPanel();
firstPanel.setLayout(new GridLayout(4, 4));
JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(100, 100));
firstPanel.add(btn);
}
}
JPanel secondPanel = new JPanel();
secondPanel.setLayout(new GridLayout(5, 13));
for (int i=1; i<=5; i++) {
for (int j=1; j<=13; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(40, 40));
secondPanel.add(btn);
}
}
mainPanel.add(firstPanel);
mainPanel.add(secondPanel);
frame.add(mainPanel);
frame.setSize(400,600);
frame.setVisible(true);
}
}
Il problema è che Java cerca di rendere la larghezza della firstPanel
e secondPanel
uguali! Inoltre, Java tenta di riempire tutta l'altezza della finestra. Come posso rimuovere questo comportamento?
Ho provato questo codice. Funziona. Ma se provo a implementare la stessa idea nel mio programma, non funziona. Penso che la ragione è che includo il mio JPanel (con GridLayout) in un altro JPanel (con BoxLayout.Y_AXIS). – Roman
@Roman Se vuoi aiuto più specifico devi inserire un codice di esempio! – Kris
come richiesto, ho pubblicato il codice. – Roman