Java GUI是否在所有操作系统上显示相同的内容?

时间:2012-11-18 11:14:12

标签: java swing user-interface look-and-feel

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

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

4 个答案:

答案 0 :(得分:3)

正确使用,普通的Swing组件在平台和L& Fs之间保持舒适,但是没有任何保证。人们应该避免无端违反UI默认的诱惑。这个例子很多,但有关大小的常见陷阱会在herehere进行讨论。测试是强制性的,但广泛使用的虚拟机可以减轻工作量。

答案 1 :(得分:2)

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

那说:他们不会觉得'自然'。 SWT在那里更好一点

答案 2 :(得分:1)

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

这样的功能

答案 3 :(得分:1)

差不多。但是使用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());
    }