如何去除 JScrollPane 上的 3D 边框
How to remove 3D border on JScrollPane
我有一个 JTable
和一个 JScrollPane
确保有一个滚动条以防它变得太大。一切正常,这是它的屏幕截图:
您现在看不到滚动条,因为没有必要,但这不是问题所在。问题出在 JTable
附近(显示 JScrollPane
的大小),您可以看到一个边框,使它看起来像带有阴影等的 3D。我想删除它。我似乎找不到任何禁用此功能的 属性,并且 JTable
和 JScrollPane
都没有任何类型的边框(也没有默认值)。关于如何删除此 3D 边框有什么想法吗?
很难说,因为您没有显示任何代码,但是在 JScrollPane(不是 JTable ).
您使用的是哪种 LnF(外观)?
jScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));
jTable.setBorder(new EmptyBorder(1, 1, 1, 1));
使用您自己的与 "jScrollPane" 和 "jTable" 相关的变量名称。最好使用 Windows Look and Feel 来更好看。
我发现这个3D边框其实是Default look and feel生成的。通过更改此设置,我能够删除边框。
在 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
我有一个 JTable
和一个 JScrollPane
确保有一个滚动条以防它变得太大。一切正常,这是它的屏幕截图:
您现在看不到滚动条,因为没有必要,但这不是问题所在。问题出在 JTable
附近(显示 JScrollPane
的大小),您可以看到一个边框,使它看起来像带有阴影等的 3D。我想删除它。我似乎找不到任何禁用此功能的 属性,并且 JTable
和 JScrollPane
都没有任何类型的边框(也没有默认值)。关于如何删除此 3D 边框有什么想法吗?
很难说,因为您没有显示任何代码,但是在 JScrollPane(不是 JTable ).
您使用的是哪种 LnF(外观)?
jScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));
jTable.setBorder(new EmptyBorder(1, 1, 1, 1));
使用您自己的与 "jScrollPane" 和 "jTable" 相关的变量名称。最好使用 Windows Look and Feel 来更好看。
我发现这个3D边框其实是Default look and feel生成的。通过更改此设置,我能够删除边框。
在 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