簡體   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