gpt4 book ai didi

java - 如何设置JDesktopPane大小

转载 作者:行者123 更新时间:2023-12-02 07:53:48 24 4
gpt4 key购买 nike

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

在主JPanel中:

jDesktopPane1 = new JDesktopPane();
setContentPane(jDesktopPane1);

当用户单击JButton时:

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?

最佳答案

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

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

尝试在桌面 Pane 上调用 setSize()/setPreferredSize(),然后查看其在 L&F 中的行为是否一致。如果内部框架的默认尺寸不是您想要的,那么您也许可以弄清楚如何最好地处理内部框架。

关于java - 如何设置JDesktopPane大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com