0
셀의 내용에 따라 이미지를 표시하고 싶은 JTable을 가지고 있습니다.이 작업을 수행하기 위해 이미 자체 셀 렌더러를 구현해야합니다. 그러나 첫 번째 이미지가 셀에 그려 지자 마자 프로그램은 내용에 관계없이 다른 셀에 이미지를 그립니다. 나는 거의 모든 것을 시도해 보았고 해결책을 찾기 위해 인터넷을 샅샅이 뒤졌습니다. 여기 내 코드는 다음과 같습니다.JTable Custom TableCellRenderer 이미지 표시
public class GameBoard extends JTable
{
public GameBoard()
{
super(new GameBoardModel());
setFocusable(false);
setCellSelectionEnabled(true);
setRowHeight(26);
TableColumn column = null;
for (int i = 0; i < getColumnCount(); i++)
{
column = getColumnModel().getColumn(i);
column.setPreferredWidth(26);
}
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
setDefaultRenderer(Object.class, new CellRenderer());
}
private class CellRenderer extends DefaultTableCellRenderer
{
private CellRenderer()
{
setHorizontalAlignment(JLabel.CENTER);
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column)
{
if (value.toString().equals("X"))
{
URL test = getClass().getResource(resources/icon.png");
setIcon(new ImageIcon(test));
}
else
setText(value.toString());
return this;
}
}
내가 그 라인 어딘가에 어리석은 짓을하고 있다면 용서해주십시오. . .
미리 감사드립니다. Zig.
'UIManager.getIcon ("html.pendingImage")'는 편리한 자리 표시 자입니다. – trashgod
나는 100 만 번이나 감사 드리고 싶습니다. 뭔가 바보가 xD라는 많은 문제를 일으키고 있다고 믿을 수 없습니다. if (value.toString(). equals ("X")) { setIcon (new ImageIcon (test)); setText (""); } else { } setIcon (null); setText (value.toString()); } – user2426634