如何在JFrame中停止调整JPanel的大小

时间:2013-03-14 12:49:36

标签: java swing layout jpanel

我有提示类扩展JPanel,使用boxlayout和

setPreferredSize(new Dimension(500,500))

在主类中我有JFrame

rem = new Reminder();

            frame.setSize(900,900);
            rem.setMaximumSize(new Dimension(500,500));
            frame.getContentPane().removeAll();
            frame.setLayout(new BorderLayout());
            frame.add(rem,BorderLayout.CENTRE);
            frame.validate();
            frame.repaint();

我希望提醒面板位于jframe的中心而不改变其大小(500,500),框架不应改变它的大小(900,900)。当我运行上面的代码时,rem面板完全展开。如何让rem面板居中?

3 个答案:

答案 0 :(得分:1)

简单方法:使用AbsoluteLayout并使用图形编辑器将“rem”准确定位到您想要的位置。 然后为frame设置不变的大小:

 frame.setResizable(false);

答案 1 :(得分:0)

请勿使用BorderLayout。如果它正是您不想要的,那么为什么使用BorderLayout?

编辑:BoxLayout是一种选择,如果您真的需要自己定位所有内容,您也可以决定不使用布局管理器,例如http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

答案 2 :(得分:0)

另外如果你想使用Borderlayout,我很确定你的代码中有一个拼写错误:

frame.add(rem,BorderLayout.CENTRE);

应该是:

frame.add(rem,BorderLayout.CENTER);

难道这是一件令你困扰的小事吗?