2016-09-06 104 views
-1

我一直在研究30分鐘,當元素太大時如何自動調整JFrame的大小。我試圖在JFrame內部安裝線段,但它總是超出空間,但不會自動生成更多空間。如果元素太大,如何自動調整JFrame的大小?

我該怎麼辦?輸出

DrivePanel panel = new DrivePanel(aCar, coordinates); 
JFrame application = new JFrame(); 

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
application.add(panel); 
application.setSize(600,600); 
application.setVisible(true); 

例子:

+1

爲了更好地幫助越早請發表[MCVE] – Frakcool

+0

規模有多大?添加滾動?縮放到一個優先大小?你想從我們這裏得到什麼?對於mor space連接4個監視器 – Yev

+0

如果600×600太小,請更改'setSize(600,600)'語句中的值。如果這不是一個合適的解決方案,你必須在你的問題中包含實際需求。 – Holger

回答

1

有些事情要考慮:

  • 如果你是在面板上做的風俗畫,記得面板的尺寸它不是由你改變正在繪製。 例如,如果「最後」點(我的意思是具有最大x和y值的點)以(1000,1000)座標繪製,則應該設置面板的首選大小以包含它。爲了讓您的應用程序使用組件的首選大小,應該調用application.pack()(其中應用程序是您的JFrame對象),而不是手動設置大小。

  • 如果您的面板太大而無法在屏幕上顯示,您可以將其添加到JScrollPane,然後將滾動窗格添加到您的jframe(而不是面板本身)。 如果您的面板無法完全顯示在屏幕上,則scrollpane會自動使用滾動條。

所以你要考慮這個小例子,根據您的代碼:

DrivePanel panel = new DrivePanel(aCar, coordinates); 
JFrame application = new JFrame(); 

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
panel.setPreferredSize(new Dimension(1000,1000)); // change 1000,1000 with the coordinates you need ... 
JScrollPane scrollPane = new JScrollPane(panel); 
application.add(scrollPane); 
application.pack(); 
application.setVisible(true); 

希望這有助於:)

相關問題