是否有关于 Swing 中应该有多少空间控件的指南?还有一个问题是如何准确地实现这一点:一些布局管理器支持控件之间的间隙;有些没有,然后你必须使用EmptyBorder
- 这也可能很痛苦,因为边界不重叠,你可能最终在两个控件之间有太多空间1 - 所以你可能需要省略一侧边界。
另一个问题是外观和感觉:如果我使用明确的间隙或边框,它可能在一个 LAF 中看起来不错,但在另一个 LAF 中看起来很糟糕。例如,Nimbus 的按钮看起来很紧凑,因为它周围有额外的空间。默认的 Windows LAF 只是将它们挤在一起,没有任何额外的空间。我意识到这本质上是一个平台问题,因为 Microsoft、Apple、Gnome 和其他公司对此主题都有不同的指导方针。
因此,如果我在控件之间放置额外的空间以适应 Windows 或 Metal LAF,那么在 Nimbus 和其他可能的情况下,它的间距就会太远。
然后是如何构建 UI 的整个问题,这会对间距和边框的灵活性产生严重的副作用。从这个角度来看,将所有东西放在一个容器中GridBagLayout
是很棒的,但如果您仍然需要对 UI 进行更改,那就太糟糕了。然后用适当的布局管理器从几个JPanel
s 构建 UI,反之亦然。
简而言之:我怎样才能确保控件的间距很好并且适合 LAF,而没有太多麻烦?也许我只是在这里忽略了一些东西——Swing 的庞大规模并非不可能。
1至少对我来说这是一个问题——也许有一个可行的解决方案。但是考虑到将两个控件彼此相邻放置的简单情况,并且您可能希望它们周围有五个像素的空白——它们之间也只有五个像素,而不是十个像素。如果不根据书写方向创建不同的边框,我看不出在一般情况下应该如何解决(因为左右不一定是控件所在的位置,但显然总是边框所在的位置)。