2011-12-14 38 views
3

是否所有组件的每个系统的LookAndFeel的大小相同?爪哇 - 系统的LookAndFeel

UIManager.getSystemLookAndFeelClassName(); 

如果不是,有什么布局是最好的处理有分量的每个系统上是不同的大小?

谢谢。

+2

推荐阅读:http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html – OscarRyz 2011-12-14 03:15:39

回答

7

你问:

是否所有组件的每个系统的LookAndFeel的大小相同?

不,他们是不一样的大小。

如果不是,哪种布局类型最适合用来处理每个系统上的组件大小不同?

没有一个最适合所有人的布局,所以这个问题很难用几句话来回答。您最好的嵌套容器,每个都使用自己的布局,并确保布局在调整大小时运行良好。您最好让组件在显示之前选择自己喜欢的尺寸并打包您的GUI。

我发现混合基本布局和简单布局最适合我,包括使用BorderLayout,BoxLayout,GridLayout,FlowLayout和偶尔GridBagLayout。我发现NetBean的默认GroupLayout对于这类问题是最不灵活的。

+0

我从来没有使用过容器。你有没有解释得很好的链接? – Stripies 2011-12-14 03:23:47

+3

@JonMannerberg:实际上,你有。从容器***下降的任何东西都是***容器。这包括JComponent及其所有后代,其中许多我相信您已经使用过很多,例如JPanels,JButtons,JLabels等......它还包括顶级窗口,如JFrames,JApplets,JDialogs等。 – 2011-12-14 03:34:30

3

如果不是,哪种布局类型最适合处理每个系统上的组件大小不同?

总的来说,我认为你在这里担心的是“最佳单选”。在这种情况下,我会建议金属外观和感觉---在一般情况下,操作系统的具体长相不同的系统古怪......如果你是推荡到极限,复杂的表格等,你会发现,定期的,老派的,applet风格的外观和感觉是最好的选择。

现在,关于布局:

流动和网格布局是一些最稳健的......我不记得这些任何惊喜,但是......他们是无聊。

然后,BoxLayout与标签式窗格结合使用时,可以为您提供非常健壮的跨平台可扩展gui(JScrollPanes对此非常赞赏)。

的GridBagLayout中也健壮如果你了解它是如何工作

最后,还有一些较新的开源,非孙布局管理器,像GridLayout2,有的在NetBeans moeiteys的。这些都是在beggining极其方便,但如果你是在部署了大量的平台,我会小心些。

我发现,标准的挥杆布局善于与不同的默认组件大小处理,只要包(),并重新验证()方法适当地在必要时使用。如果您的GUI特别动态,那么revalidate()方法非常重要。