2012-06-14 52 views
0

我正在爲Java中的數據結構製作GUI。我想要一個功能,只要用戶單擊窗體頂部的最大化按鈕,組件和窗體中的所有內容都應該在窗體展開時調整大小,反之亦然。我搜索了很多,但找不到解決方案。調整桌面GUI中的組件大小

如何縮放GUI?

+0

我寫「堆棧」爲GUI – rick

+1

代碼通常沒有最好是按比例的每一個組件,而是以供應額外的寬度或高度,以特定組件。 [嵌套版式示例](http://stackoverflow.com/a/5630271/418556)可以做到這一點 - 調整它的大小以瞭解我的意思。在這種情況下,它真的歸結爲用於在GUI中定位組件的佈局管理器,以及添加它們時使用的約束。 –

+0

沒有得到任何東西wat嵌套佈局示例正在做。你能幫助我一些簡短的代碼,如按下最大化按鈕時如何調整工具欄的大小 – rick

回答

4

你能幫我等被按下的最大化按鈕時如何調整工具欄的一些短代碼..

我會做的更好。以下是一個短代碼示例,其中顯示了其中具有不同的調整行爲取決於它們被放置在BorderLayout中的位置。

ResizableToolBars

import java.awt.BorderLayout; 
import javax.swing.*; 

public class ResizableToolBars { 

    public static void showFrameWithToolBar(String toolBarPosition) { 
     // the layout is important.. 
     JPanel gui = new JPanel(new BorderLayout()); 

     JToolBar tb = new JToolBar(); 
     // ..the constraint is also important 
     gui.add(tb, toolBarPosition); 
     tb.add(new JButton("Button 1")); 
     tb.add(new JButton("Button 2")); 
     tb.addSeparator(); 
     tb.add(new JButton("Button 3")); 
     tb.add(new JCheckBox("Check 1", true)); 

     JFrame f = new JFrame(toolBarPosition + " Sreeeetchable Tool Bar"); 
     f.setContentPane(gui); 
     f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     f.setLocationByPlatform(true); 
     f.pack(); 

     // we don't normally set a size, this is to show where 
     // extra space is assigned. 
     f.setSize(400,120); 
     f.setVisible(true); 
    } 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable(){ 
      @Override 
      public void run() { 
       showFrameWithToolBar(BorderLayout.PAGE_START); 
       showFrameWithToolBar(BorderLayout.PAGE_END); 
       showFrameWithToolBar(BorderLayout.LINE_START); 
       showFrameWithToolBar(BorderLayout.LINE_END); 
       showFrameWithToolBar(BorderLayout.CENTER); 
      } 
     }); 
    } 
} 

如果你回來後的Nested Layout Example,你應該能夠找出我如何把它一起在的一個區組件,各自在自己的佈局(在面板)的小團體父容器。

+1

非常好的答案+1 – mKorbel

+1

@mKorbel謝謝 - 我正在尋找一種方法來將6個GUI的截圖塞進一個答案中(而不會被激發)。 ;) –

+1

房間裏有人有太多的時間來創建屏幕截圖。我保持upvoting帖子指的是嵌套的佈局答案(也許我應該嘗試添加到這裏的Swing wiki標籤上):-) – Robin