私は見つけたいくつかのコードに従っています(はい、それがどのように機能するかを理解しています)それはここからです:コードリンク
私がやろうとしているのは、セルの値が「黄色」に設定されている場合、セルの前景色を設定することです
ここに私のコードがあります:
public class Board extends JPanel{
private static final long serialVersionUID = 1L;
int boardHeight = 20;
int boardWidth = 10;
JTable table;
public Board() {
table = new JTable(this.boardHeight, this.boardWidth);
table.setDefaultRenderer(String.class, new BoardTableCellRenderer());
table.setFocusable(false);
table.setShowGrid(false);
table.setRowMargin(0);
table.setIntercellSpacing(new Dimension(0,0));
table.setRowSelectionAllowed(false);
table.setVisible(true);
this.add(table);
this.setPreferredSize(new Dimension(table.getPreferredSize().width, (table.getPreferredSize().height + 85)));
}
public void paint(Graphics g) {
table.setRowHeight(20);
for (int x = 0; x < this.table.getColumnCount(); ++x) {
TableColumn col = this.table.getColumnModel().getColumn(x);
col.setPreferredWidth(20);
}
}
}
そしてセルレンダラー
public class BoardTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int col) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
String s = table.getModel().getValueAt(row, col).toString();
if (s.equalsIgnoreCase("yellow")) {
c.setForeground(Color.YELLOW);
}
else {
c.setForeground(Color.WHITE);
}
return c;
}
}
問題は、セルの値を「黄色」に設定しても変化しないことです
前もって感謝します!