jSeparator 外观 - 预览设计与运行文件 (netbeans)

2024-03-03

我有这个小问题。我正在使用 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(使用前将#替换为@)

jSeparator 外观 - 预览设计与运行文件 (netbeans) 的相关文章

随机推荐

  • 结合模板和`ConfigParser`

    我有一个名为的模板文件foo cfg Box box active box activate resolution tracker active true box api key box api key box api secret box
  • PHP:通过 cronjob 发送电子邮件并设置每分钟发送的电子邮件量

    我有一个用于发送群组电子邮件的程序 我为此程序设置了每分钟一个玉米作业 并设置每 2 次 分钟执行一次 并检查现在的时间是否与我在数据库中定义的计划时间匹配 如果为 true 程序将运行并发送电子邮件 否则 nth 问题是我想动态设置用户每
  • Android数据绑定与Guava冲突导致ProGuard错误

    在启用 ProGuard 的情况下编译 Android 应用程序时 出现以下错误 Warning library class android databinding tool util SourceCodeEscapers 1 extend
  • Swift:生成(Swift)字符数组

    简单的问题 希望我正在尝试生成一个简单的字符数组 类似于 trying to do something like this pseudo code let letters Character map 0 lt 26 i in a i 并尝试
  • Django 中的cache.fetch?

    Django 缓存有类似Rails 的cache fetch 的方法吗 http api rubyonrails org classes ActiveSupport Cache Store html M001023 http api rub
  • 在 Objective-C 中,main 之前调用了什么?

    在 Objective C 中 main 之前调用了什么 例如 我假设 Objective C 中的所有元类都在 main 之前实例化 并且调用它们的加载 初始化方法 全局常量等 还有什么 这有记录在任何地方吗 A load作为应用程序中任
  • mail() 在新服务器上不起作用

    可能这是一个愚蠢的问题 但我找不到 php 邮件功能不起作用的原因 我在 debian squeeze 上有一个 nginx 服务器 我最近搬到了它 我尝试了简单的邮件执行 但它返回 false if mail email protecte
  • reinterpret_cast bug 还是 UB? [复制]

    这个问题在这里已经有答案了 考虑以下代码 include
  • Angular 6:无法正确设置http标头的Content-Type

    我正在尝试使用 Angular 6 中的 HttpHeader 进行后调用 并将 Content Type 设置为 application json 但服务器获取的是 x www form urlencoded 而不是 applicatio
  • ASP.Net MVC 中的 LDAP 身份验证

    我希望能够使用域用户 ID 和密码对用户进行身份验证 但默认的 ASP Net MVC 应用程序允许用户注册用户 ID 和密码然后登录 我该如何执行此操作 我不希望用户能够注册 但是 他应该能够输入他的 Windows 域用户 ID 和密码
  • 解包可选值 WKWebView 获取参数时意外发现 nil

    我在 WKWebView 上工作 当我加载没有像这样的参数的 url 时 它工作正常 func loadAddress lat Double lng Double let requestURL NSURL string http url c
  • python 装饰器 *args 和 ** kwargs

    我对编码是全新的 我一直在努力吸收尽可能多的东西 我不明白你们发布的很多技术解释 所以请尽量用简单的英语 我了解装饰器函数如何工作的机制 但我的问题是遵循代码逻辑 特别是为什么我们必须添加 args 和 kwargs 声明我们传递给带有参数
  • Visual Studio 将项目移动到不同的文件夹

    如何将项目移动到 Visual Studio 中的其他文件夹 我在项目中已经习惯了这种结构 app Project Something Project SomethingElse 我想将整个命名空间 SomethingElse 重命名为 S
  • Intent.FLAG_ACTIVITY_CLEAR_TASK 的替代方案

    我有两个应用程序 App B 启动 App A 如果用户从应用程序 A 内部启动应用程序 B 我会在应用程序 A 上调用完成 所以我没有问题 如果用户从应用程序抽屉直接进入应用程序 B 或长按主页按钮 那么我会执行以下操作 首先清除应用程序
  • 如何获取可编辑JComboBox中已写入的值?

    我继续搜索 似乎每个人都只使用JComboBox getSelectedItem 但我的组合框是editable用户可以输入anything The getSelectedItem方法返回组合框中的实际项目之一 而不是在字段中输入的字符串
  • 任务计划程序找不到文件

    我在 Windows Server 2008 R2 Standard 上有大约 20 个计划任务 他们已经工作了几周 但突然这个周末他们都停止了 这些任务都是 bat 文件和 exe 文件 通过单击资源管理器或从 cmd 运行 每个文件都可
  • 使用 DataContractJsonSerializer 将字典序列化为 JSON 对象

    我有一个 DataContract 具有一些属性并使用以下命令序列化为 JSON 的对象DataContractJsonSerializer 其中一个属性是类型Dictionary
  • 是否可以根据完整模板参数构造成员数组的元素?

    Assume template
  • 运算符=的返回类型 - 引用还是值?

    从函数 operator 返回有什么区别 by reference by value 在下面的示例中 两个版本似乎都产生了正确的结果 include
  • jSeparator 外观 - 预览设计与运行文件 (netbeans)

    我有这个小问题 我正在使用 Netbeans 当我单击 预览设计 时 我看到的 jSeparators 如下所示 但是当我运行该项目时 它是这样的 我该如何解决这个问题 我希望该项目看起来像预览设计 Thanks 当您运行窗口时 JFram