Warum SetMinimumSize legt die minimalen Höhen, aber nicht die Breite?
Hier ist mein code:
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));
firstPanel.setMaximumSize(new Dimension(4*100, 4*100));
firstPanel.setMinimumSize(new Dimension(4*100, 4*100));
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);
}
}
mainPanel.add(firstPanel);
frame.add(mainPanel);
frame.setSize(520,600);
//frame.setMinimumSize(new Dimension(520,600));
frame.setVisible(true);
}
}
Wenn ich erhöhen Sie die Größe des Fensters (mit der Maus) ich sehe, dass mein panel nicht vergrößern. Es ist das erwartete Verhalten (weil ich die maximale Größe der Platte). Wenn ich allerdings verringern Sie die Größe der Fenster, sehe ich, dass die Breite der Platte verringert wird (während die Höhe konstant bleibt).
So, die setMinimumSize
funktioniert nur teilweise. Warum ist das so?
- Würde stackoverflow.com/questions/1345902/... helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diskutiert, wie in die How to Use BoxLayout: Box-Layout-Features, dies ist das erwartete Verhalten für eine top-to-bottom-box-layout
BoxLayout.Y_AXIS
. Ändern Sie die Achse mit einem von-Links-nach-rechts-box layout,BoxLayout.X_AXIS
, und du wirst sehen, die Höhen zu verkleinern, statt. Sehen die How to Use BoxLayout: Angabe der Komponente, die Größen für mehr details.