我有一个JTable
和一个JScrollPane
,可以确保有一个滚动条,以防它变大。一切都很好,这是它的屏幕截图:
您现在无法看到滚动条,因为它不是必需的,但这不是问题。问题出在JTable
和更低的位置(显示JScrollPane
的大小)周围,您可以看到这样的边框,使其看起来像带有阴影等的3D。我希望删除它。我似乎找不到任何禁用此属性的属性,并且JTable
和JScrollPane
都没有任何类型的边框(也没有默认边框)。关于如何删除此3D边框的任何想法?
答案 0 :(得分:0)
很难说,因为您没有显示任何代码,但是在 JScrollPane (不是JTable)上调用时,getBorder()和getViewportBorder()都返回null。
您正在使用哪个LnF(外观和感觉)?
答案 1 :(得分:0)
jScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));
jTable.setBorder(new EmptyBorder(1, 1, 1, 1));
使用与“ jScrollPane”和“ jTable”相关的自己的变量名。最好使用Windows Look and Feel以获得良好的外观。
答案 2 :(得分:0)
我发现3D边框实际上是由默认外观生成的。通过更改此设置,我可以删除边框。
答案 3 :(得分:0)
在LookAndFeel初始化中,只需设置空边框即可:
UIManager.getDefaults().put("ScrollPane.border", BorderFactory.createEmptyBorder());
UIManager.getDefaults().put("Table.border", BorderFactory.createEmptyBorder());
它将影响您应用中的所有 ScrollPane对象,如果您只想更改一个,请使用以下代码:
jScrollPane.setBorder(BorderFactory.createEmptyBorder());
jTable.setBorder(BorderFactory.createEmptyBorder());
如果要保存标题的顶部边框,请使用 MatteBorder :
BorderFactory.createMatteBorder(1, 0, 0, 0,Color.LIGHT_GRAY))//1 is top line, rest is empty