0

使用来自 Swing 的组件构建其 GUI 的 Java 编写的程序在所有操作系统上的显示是否完全相同?

编辑:让我这样问这个问题:使用 Java 是否可以设计一个保证在所有平台上显示完全相同的 GUI?

4

4 回答 4

4

正确使用,常见的 Swing 组件在平台和 L&F 上都非常稳定,但不能保证。应该避免无缘无故违反 UI 默认值的诱惑。这方面的例子比比皆是,但这里这里讨论了有关大小的常见缺陷。测试是强制性的,但广泛可用的虚拟机减轻了这项工作。

于 2012-11-18T15:01:10.957 回答
2

差不多吧。但是使用 UIManager 您可以根据操作系统的主题确定主题。
例子:

UIManager.LookAndFeelInfo looks[] = UIManager.getInstalledLookAndFeels();
    try{
        //0-Swing, 1-Mac, 2-?, 3-Windows, 4-Old Windows
        UIManager.setLookAndFeel(looks[3].getClassName());
    }catch(Exception e){
        System.out.println(e.getMessage());
    }
于 2012-11-18T11:22:10.217 回答
2

是的,只要您使用 swing 并且没有特定于平台的代码,它们就会。

那就是说:那时他们不会感到“自然”。SWT 在那里好一点

于 2012-11-18T11:32:00.643 回答
1

简短地说,默认情况下它看起来会有所不同,因为swing使用系统外观,但您可以覆盖它(http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html),在这种情况下是应用程序在具有相同外观和感觉的所有平台上看起来都一样,或者您可以禁用一些外观和感觉功能,例如 -Dswing.noxp=true

于 2012-11-18T11:20:57.253 回答