我正试图在我的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 ,这对我来说很有意义,但是我无法让它发挥作用。
任何建议都值得赞赏
答案 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