0

これは私の ClanModel クラスです。テーブルはツリー マップに基づいています。

public class ClanModel extends AbstractTableModel{
    private Map<Integer, ClanMember> clanMembers;
    private final String[] columnNames = {"Name", "Rank"};

    ClanModel(Map<Integer, ClanMember> clanMembers){
        this.clanMembers = clanMembers;
    }   

    @Override
    public int getRowCount() {
        return clanMembers.size();
    }

    @Override
    public int getColumnCount() {
        return 2;
    }

    @Override
    public String getColumnName(int column){
        return columnNames[column]; 
    }

    @Override
    public Object getValueAt(int row, int column) {
        if(column == 0) return clanMembers.get(row).getName();
        if(column == 1) return clanMembers.get(row).getRank();
        return 1;
    }

    @Override
    public void setValueAt(Object value, int row, int column) {
        if(column == 0) clanMembers.get(row).setName((String) value);
        if(column == 1) clanMembers.get(row).setRank((Rank) value);
        fireTableCellUpdated(row, column);
    }
}

これはGUIコンストラクタにあります

clanTable = new JTable(new ClanModel(clanMembers));
panel.add(clanTable);

マップは、機能しているボタンを押すと塗りつぶされます。ただし、ボタンをクリックする前またはクリックした後、テーブルは表示されません。また、GUI ウィンドウのサイズを変更するたびにエラーが発生します。

修正するために何をする必要があるかについて大まかな考えはありますが、うまくいきません。

4

1 に答える 1