gpt4 book ai didi

Java - Jtable - 具有不同颜色的单元格

转载 作者:行者123 更新时间:2023-11-30 06:47:33 24 4
gpt4 key购买 nike

我已经看到了一些例子,但仍然无法理解如何解决这个问题,可能没有一个干净的解决方案。我正在尝试使用 Jtable 和 10*10 作为单元来构建 John Conway 的 Game Of Life。我知道如何更改表格背景颜色(所有单元格),但我无法对特定单元格颜色更改执行此操作。我知道,我需要使用 CellRenderer 创建一个类,但我也无法理解它..

这是我的代码:

public class theGame {

public static void main(String [] args) {

theMatrix gui = new theMatrix();

gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(550,450);
gui.setVisible(true);
gui.setTitle("Game Of Life");



JOptionPane.showMessageDialog(null, " Welcome John Conway's Game Of Life ");
int replay = JOptionPane.showConfirmDialog(null, "Would you like to see the next generation?", "Close?", JOptionPane.YES_NO_OPTION);

if (replay == JOptionPane.YES_OPTION);

}
}
<小时/>
public class theMatrix extends JFrame { 

JTable table;

public theMatrix() {
setLayout(new FlowLayout());
String[] columNames = {"", "", "", "", "", "", "", "", "", ""};

Object[][] data = { // Create a 10*10 table with default values.

{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null}
}

table = new JTable(data, columNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 500));
table.setRowHeight(40);
table.setBackground(Color.lightGray);

JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);

}
}

最佳答案

以下是呈现的自定义单元格的示例,它根据行和列更改背景颜色:

public class TheMatrix extends JFrame {

JTable table;

public TheMatrix() {
setLayout(new FlowLayout());
String[] columNames = {"", "", "", "", "", "", "", "", "", ""};

Object[][] data = { // Create a 10*10 table with default values.

{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null}
};

table = new JTable(data, columNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 500));
table.setRowHeight(40);
table.setDefaultRenderer(Object.class, new MyRenderer());

JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
}

class MyRenderer implements TableCellRenderer {

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int col) {
JTextField cell = new JTextField();

cell.setBackground(((row % 2) == 0) && ((col % 2) == 0) ? Color.WHITE : Color.BLACK);
return cell;
}
}

关于Java - Jtable - 具有不同颜色的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43432098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com