无法设置框架的大小

时间:2014-05-25 11:47:57

标签: java swing jframe size preferredsize

我想设置框架的大小,但我不能,为什么?框架在createandshowgui方法中 我确实设置了框架,表格一切但没有做任何事情,我想设置1024x768

public static class DisplayResult extends JPanel {

public DisplayResult() {
    super(new GridLayout(1,0));

    DefaultTableModel model = new DefaultTableModel(data, columnNames);
    final JTable table = new JTable(model);
    table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    table.setFillsViewportHeight(true);
    table.setPreferredScrollableViewportSize(table.getPreferredSize());
    table.setFillsViewportHeight(true);

    if (DEBUG) {
        table.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                printDebugData(table);
            }
        });
    }

    JScrollPane scrollPane = new JScrollPane(table);
    add(scrollPane);
}


public static void createAndShowGUI() {
    final JButton button1=new JButton("Vissza");
    JPanel panel=new JPanel();
    final JFrame frame = new JFrame("Database Data");
    frame.setLayout(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1024,768);
    DisplayResult newContentPane = new DisplayResult();
    newContentPane.setOpaque(true); //content panes must be opaque
    frame.setContentPane(newContentPane);
    frame.add(panel);
    panel.add(button1);
    frame.pack();
    frame.setVisible(true);


}

2 个答案:

答案 0 :(得分:1)

您正在使用frame.setSize()和frame.pack()。您一次只能使用其中一个。

使用setSize()可以给出所需的帧大小,但如果使用pack(),它将根据其中组件的大小自动更改帧的大小。它不会考虑你之前提到的尺寸。

删除frame.pack()o将它放在setSize()之前。

答案 1 :(得分:0)

问题出在pack方法上。切勿对pack;

使用setSize方法
frame.setSize(1024,768);

.........
//frame.pack(); Comment this line.