繁体   English   中英

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

[英]How to stop resizing of JPanel in JFrame

我有提醒类扩展了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面板居中?

简单方法:使用AbsoluteLayout并通过图形编辑器将“ rem”精确定位在所需位置。 然后为框架设置不变的大小:

 frame.setResizable(false);

不要使用BorderLayout 如果您确实不想使用BorderLayout,为什么还要使用BorderLayout?

编辑: BoxLayout是一种选择,如果您确实确实需要绝对放置所有内容,则还可以决定不使用任何布局管理器,例如http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

另外,如果您想使用Borderlayout,我很确定这是您的代码中的错字:

frame.add(rem,BorderLayout.CENTRE);

应该:

frame.add(rem,BorderLayout.CENTER);

可能是这么小的事情困扰着您吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM