3

ユーザーのリストを表示するjtableを作成しようとしています。テーブルでは、ユーザーが行全体を選択できるようにする必要がありますが、セルの編集は許可しないでください。

これまでのところ、セルの編集を停止しますが、セルではなく行を選択できるようにするにはどうすればよいですか?

DefaultTableModel userTableModel = new DefaultTableModel(new Object[]{"Customer ID", "First Name", "Last Name"}, 0) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
};

そして、これは私がテーブルにデータを入力していることを示しています:

public void refreshCustomersList() throws SQLException, ClassNotFoundException {

    UserBeanList userList = dbConnector.getUserData();

    for (int i = 0; i < userList.size(); i++) {
        UserBean userBean = userList.getUserBeanAt(i);

        String[] data = new String[3];

        data[0] = userBean.getCustomerID();
        data[1] = userBean.getFirstName();
        data[2] = userBean.getLastName();

        userTableModel.addRow(data);

    }
    tableCustomers.setModel(userTableModel);
}

私が言ったように、セルの編集を無効にしましたが、行の選択のみを許可するにはどうすればよいですか。

これを入れるべきだと言っている他の人からの投稿を見たことがありますが、入れるべきかどうかはわかりません。

selectionTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

7

JTable インスタンスを試しsetRowSelectionAllowed(true)ましたか?

javadocs http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html#setRowSelectionAllowed(boolean)を見てみることをお勧めします

javadocs からリンクされているチュートリアルを読んでください: http://docs.oracle.com/javase/tutorial/uiswing/components/table.html

彼らはかなり徹底しています:)

于 2013-02-07T09:58:42.620 に答える