我有提示类扩展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面板居中?
答案 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);
难道这是一件令你困扰的小事吗?