我正在制作一个简单的swing应用程序,我想在组件中添加一些标题边框。我的两个JScrollPanes上的边框都可以正常工作,但JTextField和JButtons不能。请允许我分享一些屏幕截图。





我只是为此简单的代码。即

TitledBorder border = new TitledBorder("Border");
convert.setBorder(border); //convert is the JButton


我不明白为什么它对一件事情不起作用,而对另一件事情却起作用。谁能帮我吗?

最佳答案

JTextField和JButton都已经使用了Border。这样标题的边框可以使用,但是会更改组件的外观,因为您会丢失默认的边框。

我也同意,通常您不对单个组件使用TitledBorder,但是我想您可以尝试使用CompoundBorder来查看它是否更好:

CompoundBorder border = new CompoundBorder(titledBorder, button.getBorder());
button.setBorder( border );


但是上述方法的问题在于,当您按下/释放按钮上的鼠标时,会丢失边框的动态重新绘制。

10-04 17:57