【发布时间】:2017-09-11 22:15:08
【问题描述】:
我已经看到了一些例子,但仍然无法理解如何解决这个问题,可能没有一个干净的解决方案.. 我正在尝试通过使用 10*10 的 Jtable 作为单元格来构建 John Conway 的生命游戏。我知道如何更改表格背景颜色(所有单元格),但对于特定单元格颜色更改,我无法做到这一点。我知道,我需要用 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);
}
}
【问题讨论】:
-
单元格渲染器应该使用特定单元格的数据来确定应该如何渲染它
-
是的,我会将我的表格更改为 0,1,然后尝试将它们着色为游戏应有的不同类型..
-
换色如何?什么颜色代表什么价值?并始终在您的问题中展示您的最佳尝试代码,以创建更好的问题并获得更好的帮助。
-
谢谢!我想我明白如何在这个答案的帮助下解决它——link
标签: java jframe jtable jpanel conways-game-of-life