2010-03-19 61 views
1

我正在使用Netbeans 6.8製作桌面應用程序。我想要做的是以編程方式設置我的應用程序的大小,以便它填充整個屏幕。我環顧四周,似乎是一個相當討厭的問題。 我一直在試圖顯示here的代碼,但它似乎並沒有工作。以編程方式設置FrameView的大小

任何人有任何想法如何我可以解決它?

回答

4

謝謝你們,似乎我需要的是混合上面給出的答案。我回答這個問題,這樣我可以在一些格式化代碼把這樣它會更容易理解應該有人偶然發現了這個帖子:)

super(app); 
    JFrame frame = new JFrame(); 
    frame.pack(); 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setResizable(false); 
    this.setFrame(frame); 
    initComponents(); 

我基本上創造了另一個JFrame中並將其設置爲前FrameView的JFrame的initComponents方法。

1

如果您正在使用一個JFrame,然後嘗試調用:

setExtendedState(Frame.MAXIMIZED_BOTH); 
你的框架

+0

沒有運氣。 我在FrameView的構造函數中調用它,在initComponents方法之前和之後打擾。我也嘗試調用.repaint(),.validate()和.validate(),但它也不起作用。 – npinti 2010-03-19 18:44:34

+3

您可以在幀可見之前設置擴展狀態。如果該框架未最大化,則由於桌面應用程序代碼在調用setExtendedState()方法後正在調用frame.pack()或frame.setSize(...)。因此,搜索你的源代碼,看看這是做什麼,然後調用你的代碼。這是應用程序框架的問題,而不是Swing。 – camickr 2010-03-19 20:22:30

+0

我查看了生成的代碼,以及調用FrameView的類,但是我沒有看到任何setSize或pack調用。我檢查了導航的事情,它確實指定了一個特定的大小。當我改變它的時候,Frame的大小隻有在Designer中時纔會改變,當我運行應用程序時FrameView保持相同的大小。 我會一直搞亂,並會盡量讓你張貼。 – npinti 2010-03-20 10:49:01

2

的FrameView有JFrame組件,所以你不應該重新創建的JFrame。

super(app); 

initComponents(); 

getFrame().setExtendedState(JFrame.MAXIMIZED_BOTH); 
getFrame().setResizable(false); 
相關問題