3

我有一个问题,为必须占据整个屏幕的触摸屏 GUI 应用程序创建一个固定大小的整体面板。简而言之,触摸屏是 800 x 600 像素,因此我希望主 GUI 面板是那个大小。

当我在 NetBeans 中启动一个新的 GUI 项目时,我将主面板的最小/最大/首选大小的属性设置为 800 x 600,并且“设计”视图中的面板会更改大小。但是,当我启动应用程序时,它会调整为原始默认大小。

在 initComponents() 之后添加此代码无济于事:

this.mainPanel.setSize(new Dimension(800,600));
this.mainPanel.setMaximumSize(new Dimension(800,600));
this.mainPanel.setMinimumSize(new Dimension(800,600));
this.mainPanel.repaint();

我已经查看了所有资源文件,似乎找不到可以覆盖这些文件的值(这似乎有点不可能,因为我是在 initComponents() 完成工作之后设置它们的)。我正在使用 FreeDesign 布局,因为我想完全控制我放置东西的位置。

我怀疑布局管理器正在根据屏幕上有多少小部件来调整大小,因为不同的原型屏幕以不同的尺寸出现。

帮助表示赞赏!

4

3 回答 3

1

你试过java全屏模式吗?

于 2008-10-30T09:58:55.963 回答
0

我使用这种方法来完成任务,不确定它是否最好,您需要等待调用它,直到框架实际出现在屏幕上。

protected void growBig()
  {
    int screenWidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
    int screenHeight = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;
    Rectangle rectangle = getFrame().getBounds();
    rectangle.setSize(screenWidth, screenHeight);
    getFrame().setBounds(0, 0, screenWidth, screenHeight);
    getFrame().setSize(screenWidth, screenHeight);
    getFrame().doLayout();
    getFrame().validate();
    updateUI();
  }
于 2008-10-30T07:06:58.450 回答
0

我不确定您的触摸屏设备是如何工作的。但是,如果您使用 Netbeans 预览,您的面板将被放置在 JFrame/JWindow 等外部容器中。也许您将框架设置为 800x600。

如果是这样,那么问题可能是框架为自己的边框占用了几个像素,从而使您的面板尺寸 < 800x600。在这种情况下,您的面板将无法使用您的最小/最大设置并恢复为默认尺寸。

于 2008-10-30T11:29:29.027 回答