如何删除 JScrollPane 内的边框
How to remove border inside JScrollPane
您好,有什么方法可以去除 JScrollPane 中的边框 header?
这是我的 JScrollPane header 边框的图片
我尝试了很多方法来删除 header 边框,例如将边框设置为 null,但都没有成功。
这是设置 JScrollPane 边框的代码...
JScrollPane scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setUI(new CustomJScrollBar());
scrollPane.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
scrollPane.setBounds(105, 127, 1120, 540);
scrollPane.setBorder(new EmptyBorder(0, 0, 0, 0));
scrollPane.getViewport().setBackground(Color.WHITE);
add(scrollPane);
非常感谢!
您可能需要增加默认单元格 header 渲染器,例如:
public class MyRenderer implements TableCellRenderer {
private TableCellRenderer parent;
private Border emptyBorder = BorderFactory.createEmptyBorder();
private MyRenderer(TableCellRenderer parent) {
this.parent = parent;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel headerLabel = (JLabel) parent.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
headerLabel.setBorder(emptyBorder);
return headerLabel;
}
}
然后,您可以将其设置为渲染器以用于:
JTable jt = <your table>
JTableHeader tableHeader = jt.getTableHeader();
tableHeader.setDefaultRenderer(new MyRenderer(tableHeader.getDefaultRenderer()));
您好,有什么方法可以去除 JScrollPane 中的边框 header?
这是我的 JScrollPane header 边框的图片
我尝试了很多方法来删除 header 边框,例如将边框设置为 null,但都没有成功。
这是设置 JScrollPane 边框的代码...
JScrollPane scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setUI(new CustomJScrollBar());
scrollPane.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
scrollPane.setBounds(105, 127, 1120, 540);
scrollPane.setBorder(new EmptyBorder(0, 0, 0, 0));
scrollPane.getViewport().setBackground(Color.WHITE);
add(scrollPane);
非常感谢!
您可能需要增加默认单元格 header 渲染器,例如:
public class MyRenderer implements TableCellRenderer {
private TableCellRenderer parent;
private Border emptyBorder = BorderFactory.createEmptyBorder();
private MyRenderer(TableCellRenderer parent) {
this.parent = parent;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel headerLabel = (JLabel) parent.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
headerLabel.setBorder(emptyBorder);
return headerLabel;
}
}
然后,您可以将其设置为渲染器以用于:
JTable jt = <your table>
JTableHeader tableHeader = jt.getTableHeader();
tableHeader.setDefaultRenderer(new MyRenderer(tableHeader.getDefaultRenderer()));