在Java中删除表格中的网格线,但保留整行相同的颜色
我在表格上使用了在Java中删除表格中的网格线,但保留整行相同的颜色,java,colors,gridlines,Java,Colors,Gridlines,我在表格上使用了tableCellRenders来重新绘制单元格,以便表格中的每一行都是不同的颜色,但是,当我使用setShowGrid(false)时它删除网格线,但允许表格的背景色显示网格线过去所在的位置,而不是该行中单元格的颜色 有没有办法给这些网格线上色?或者我需要一种更好的方法来为交替行着色吗?您删除了行,但保留了间距。删除间距应该有效 jTable.setIntercellSpacing(new Dimension(0,0)); 为了给线上色,只需设置JTable组件的背景色,但如
tableCellRenders
来重新绘制单元格,以便表格中的每一行都是不同的颜色,但是,当我使用setShowGrid(false)时代码>它删除网格线,但允许表格的背景色显示网格线过去所在的位置,而不是该行中单元格的颜色
有没有办法给这些网格线上色?或者我需要一种更好的方法来为交替行着色吗?您删除了行,但保留了间距。删除间距应该有效
jTable.setIntercellSpacing(new Dimension(0,0));
为了给线上色,只需设置JTable组件的背景色,但如果要抑制它,只需设置单元间间距:
- 抑制:jTable.setIntercellSpacing(新维度([spacings])李>
- 给它上色:jTable.setBackground([Color])
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.Component;
导入java.awt.Dimension
导入javax.swing.JFrame;
导入javax.swing.JTable;
导入javax.swing.table.DefaultTableModel;
导入javax.swing.table.TableCellRenderer
公共类TestJFrame{
public static void main(String[] args) {
JFrame jFrame = new JFrame();
JTable jTable = new JTable();
jTable.setModel(new DefaultTableModel(new String[][] { new String[] {"col1", "col2"}, new String[] {"col1", "col2"}, new String[] {"col1", "col2"}}, new String[] {"colHeader1", "colHeader2"}));
final TableCellRenderer defaultRenderer = jTable.getDefaultRenderer(Object.class);
jTable.setDefaultRenderer(Object.class, new TableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component result = defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(!isSelected) {
if (row%2 == 0) {
result.setBackground(Color.GRAY);
} else {
result.setBackground(Color.DARK_GRAY);
}
}
return result;
}
});
jTable.setBackground(Color.RED);
jTable.setShowGrid(false);
//jTable.setIntercellSpacing(new Dimension(0, 0));
jFrame.setLayout(new BorderLayout());
jFrame.add(jTable.getTableHeader(), BorderLayout.NORTH);
jFrame.add(jTable, BorderLayout.CENTER);
jFrame.pack();
jFrame.setVisible(true);
}
我认为这可能会有所帮助