使用Java编写的程序是否使用Swing中的组件在所有操作系统上构建其GUI显示完全相同?
编辑:让我用这种方式提出问题:使用Java是否可以设计一个保证在所有平台上显示完全相同的GUI?答案 0 :(得分:3)
正确使用,普通的Swing组件在平台和L& Fs之间保持舒适,但是没有任何保证。人们应该避免无端违反UI默认的诱惑。这个例子很多,但有关大小的常见陷阱会在here和here进行讨论。测试是强制性的,但广泛使用的虚拟机可以减轻工作量。
答案 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());
}