在对象之间放置空格的最佳方法是什么?Swing JSeparator对象可以是不可见的分隔符吗?

War*_* P 11 java swing netbeans insets jseparator

我正在尝试使用Swing小部件在面板中放置两个按钮.在NetBeans IDE中,我的JSeparator border属性设置(No border)在属性窗格中.

然而,出现了一条线.这不是我对分隔符对象的期望.难道我做错了什么?来自Delphi和C#WinForms的背景,我希望在Swing中找到一些奇怪的东西.但是,如何在面板中的两个按钮之间创建特定尺寸的透明间隙?我是否必须使用布局并避免使用JSeparator

更新:使用布局并且没有任何分隔符对象来执行此操作应该是微不足道的.那你怎么做的?我正在研究NetBeans布局定制器和属性检查器,但没有办法做到这一点.(答案:带有插图的布局,而不是分隔符.)

Ada*_*ski 22

您应该查看类上的静态实用程序方法Box.它们可用于制造固定支柱,作为隐形分离器; 例如

JPanel pnl = new JPanel(new FlowLayout());
pnl.add(new JButton("Hello"));
pnl.add(Box.createHorizontalStrut(10)); // Fixed width invisible separator.
pnl.add(new JButton("Goodbye");
Run Code Online (Sandbox Code Playgroud)

JPanel与使用适当的最小,最大和首选尺寸创建/配置自己相比,这会产生更紧凑的代码.

  • @Warren P:根据您使用的布局管理器,此代码可能*适当使用布局.不同的布局管理器有很多不同的方法来实现相同的结果. (2认同)