2010-03-19 94 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); 
相关问题