1
我已經看到一些例子,但還是沒能明白如何來解決這個問題,還沒有一個乾淨的解決方案可能.. 我試圖通過建立約翰·康威的生命遊戲中使用10 * 10的Jtable作爲單元格。我知道如何更改表格的背景顏色(所有細胞的),但我不能爲特定的單元格顏色變化做到這一點。我知道,我需要創建的CellRenderer類,但我不能設法瞭解它太..爪哇 - JTable中 - 細胞與不同顏色
這裏是我的代碼:
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);
}
}
[概念:編輯和渲染器(http://docs.oracle.com/javase/tutorial/uiswi納克/組件/ table.html#editrender)和[使用定製渲染器(http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#renderer) – MadProgrammer
單元格渲染器應使用所述數據特定的細胞,使關於應該如何呈現 – MadProgrammer
是的肯定,我會改變我的表0,1確定,然後會嘗試有色它們在不同類型的遊戲應該是... – Itsko