我有这个小问题。我正在使用 Netbeans。当我单击“预览设计”时,我看到的 jSeparators 如下所示:
但是当我运行该项目时,它是这样的:
我该如何解决这个问题?我希望该项目看起来像预览设计。
Thanks!
当您运行窗口时(JFrame
, JDialog
) / 成分 (JPanel
)在预览设计中它是使用系统外观和感觉显示的,但是当您运行应用程序时用户界面管理器 http://docs.oracle.com/javase/8/docs/api/javax/swing/UIManager.html默认情况下使用跨平台 L&F,也称为Metal
如果。
我希望该项目看起来像预览设计。
参见相关:
- 如何设置外观 http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
- 如何设置 jframe 外观 https://stackoverflow.com/a/9683364/1795530
无关
这是反对使用 GUI 构建器的论点之一。您将使用预览设计来布置所有组件,以排列所有组件。假设您使用 Windows,现在您将外观设置为系统 L&F,以便您的应用程序在您的计算机中完美运行和显示:
public static void main(Strin[] args) {
...
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
...
}
太棒了,它有效!现在假设您的一个朋友喜欢您的应用程序,并且您与您的朋友分享它。事实证明你的伴侣使用 Linux 或 Mac...那么系统的外观和感觉将不再是 Windows,GUI 可能看起来很糟糕。例如考虑这篇文章:Preview 和 Runview 之间的外观不同 http://netbeans-org.1045718.n5.nabble.com/Different-looks-beetwen-Preview-and-Runview-td3045131.html您可以在第二张图片中看到最后一行组件被切成两半。
发生这种情况是因为布局管理器 http://docs.oracle.com/javase/tutorial/uiswing/layout/index.htmlNetBeans GUI 构建器使用的是组布局 http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html,它被设计为与 GUI 构建器一起使用,并且让它在与您的平台不同的平台上工作可能会非常痛苦(抱歉我的表达方式,但这是事实)。
根据我的经验,我曾将构建器用于几个小项目,旨在在同一平台上运行所有项目,但当我真的必须开发跨平台应用程序时,结果证明这是一场噩梦。因此,我强烈建议您忘记 GUI 构建器并手动编写 GUI。
See NetBeans 中的 GroupLayout 自动生成的代码 https://stackoverflow.com/questions/18745072/grouplayout-autogenerated-code-in-netbeans。有一系列非常好的布局管理器,它们可以让您的生活更轻松,让您的应用程序 UI 真正跨平台,正如任何 Java 应用程序所应该的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)