在JPanel内的欲望位置放置边框

时间:2014-04-11 01:57:20

标签: java swing jpanel border

我正试图在我的JPanel内部的按钮周围放置一个边框。我有这个:

 Border lineBorder = BorderFactory.createLineBorder(Color.black);

 welcomePanel.setBorder(lineBorder);

但是这只会将边框放在我的整个应用程序窗口周围,这是有道理的。我希望能够将边框放在我想要的地方......我将按钮放在所需的位置时就这样做了

button1.setBounds(10, 10, 60, 30);

我查看了API并看到了 paintBorder 方法,参数为 int x,int y,int width,int height ,这对我来说很有意义,但是我无法让它发挥作用。

任何建议都值得赞赏

1 个答案:

答案 0 :(得分:2)

首先将按钮添加到另一个JPanel ...

JPanel buttons = new JPanel();
buttons.setLayout(...);
// add buttons...

设置此面板的Border ...

buttons.setBorder(BorderFactory.createLineBorder(Color.black));

将此添加到主容器......

welcomePanel.add(buttons);

像素完美布局是现代UI设计中的一种幻觉,你不会控制诸如字体选择,渲染管道,DPI等因素,这些因素将改变每个组件定位所需的要求,即角色布局经理。

Swing旨在与布局管理人员合作,尝试不做会导致问题和挫折感的结束,因为你试图找到更多的黑客来解决这些问题。

您可以使用EmptyBorder之类的内容在组件之间引入空格,或Insets引入GridBagLayout