理論的には、AbstractTableModelを作成してjTableを編集不可にし、常にfalseを返すことで次のメソッドをオーバーライドできることを知っています(ただし、AbstractTableModelのデフォルトのメソッドはすでに存在するため、これは必要ありません) falseを返します)。
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
私はまだこれを私のコードに正しく機能させる方法を理解できないようです。私は何が間違っているのですか?これが私のコードです:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class Datagrid extends AbstractTableModel {
private static final long serialVersionUID = -1080095595481949205L;
private String[] title;
private String[][] data;
private JTable table;
private JFrame frm;
public Datagrid(String[] title, String[][] data) {
this.title = title;
this.data = data;
create_table();
}
public JTable getTable() {
return table;
}
private void create_table() {
table = new JTable(data, title);
frm = new JFrame();
frm.getContentPane().add(new JScrollPane(table));
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public int getColumnCount() {
return table.getColumnCount();
}
@Override
public int getRowCount() {
return table.getRowCount();
}
@Override
public Object getValueAt(int row, int column) {
return table.getValueAt(row, column);
}
}