首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置JDesktopPane大小

如何设置JDesktopPane大小
EN

Stack Overflow用户
提问于 2012-03-28 18:38:38
回答 2查看 3.8K关注 0票数 0

我正在开发一个带有主面板的java应用程序,我在其中添加了一个JDesktopPane。用户单击JButton,将显示一个JInternalFrame。我的问题是,如果我使用Mac OSx外观,JDesktopPane以正确的大小显示JInternalFrame,如果我使用其他外观,它将在屏幕尺寸中显示JInternalFrame。这就是我要做的:

在主JPanel

代码语言:javascript
复制
jDesktopPane1 = new JDesktopPane();
setContentPane(jDesktopPane1);

当用户单击JButton(s)

代码语言:javascript
复制
public void addInDesktop(JInternalFrame frame){
        frame.setVisible(true);
        try {   
                        jDesktopPane1.setSize(frame.getSize());
                        jDesktopPane1.setPreferredSize((frame.getSize()));
                        System.out.println(frame.getSize().toString());
                        System.out.println(jDesktopPane1.getSize().toString());
            jDesktopPane1.add(frame);
            frame.moveToFront();
            frame.setSelected(true);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }

System.out.println告诉我JDesktopPane和JInternalFrame的尺寸是一样的,但为什么它显示的是全屏大小的JInternalFrame?

EN

回答 2

Stack Overflow用户

发布于 2012-03-28 18:50:23

如果您在jDesktopPane1.add(frame)之后打印出大小,那么您可能会看到大小的变化。我建议将桌面窗格设置为内部框架的大小是一种不好的做法-我认为它应该保持桌面窗格所在的父JFrame (调用setContentPane(jDesktopPane1)的框架)的工作区的大小,并自然地让内部框架位于其中的某个位置。

可能会发生的情况是,将窗格和内部设置为相同的大小可能会使外观和感觉假设您的意思是“最大化”,因此当它正确解析桌面窗格的大小时,它会对内部框架做一些奇怪的事情。

尽量不要在桌面窗格上调用setSize() / setPreferredSize(),看看它在L&F上的行为是否一致。如果内部框架的默认大小不是您想要的大小,那么也许您可以弄清楚如何处理内部框架。

票数 2
EN

Stack Overflow用户

发布于 2016-07-16 05:23:37

如果你想设置的大小和你的jframe一样宽和高,你要把它放进去。您可以使用

代码语言:javascript
复制
variable_desktopPane.setBounds(this.getBounds());

我所说的this指的是你称之为边界的Jframe。

我希望这对你有所帮助,问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9905777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档