Why setPreferredSize does not change the size of the button?

Posted by Roman on Stack Overflow See other posts from Stack Overflow or by Roman
Published on 2010-03-30T14:41:28Z Indexed on 2010/03/30 14:53 UTC
Read the original article Hit count: 314

Filed under:
|
|
|
|

Here is the code:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class TestGrid {

    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 panel = new JPanel();
        panel.setLayout(new GridLayout(4, 9));
        panel.setMaximumSize(new Dimension(9*30-20,4*30));

        JButton btn;
        for (int i=1; i<=4; i++) {
            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

            btn = new JButton();
            btn.setPreferredSize(new Dimension(30, 10));
            panel.add(btn);

            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

        }
        mainPanel.add(panel);
        frame.add(mainPanel);

        frame.setSize(450,950);
        frame.setVisible(true);
    }
}

I suppose to have a table of buttons with 4 rows and 9 columns. And the middle column should be narrower that other columns. I tried Dimension(30, 10) and Dimension(30, 10) both have no effect on the width of the middle column. Why?

© Stack Overflow or respective owner

Related posts about java

Related posts about swing