[英]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.