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?

InformationsquelleAutor Roman | 2010-03-30
Schreibe einen Kommentar