過去 2 日間、Java アプリでデータ ビュー テーブルを作成しようとしましたJTable
。
Netbeans バインディング オプションは機能しませんが、気にしないでください。独自の を作成できましたTableModel
。
データはテーブルに表示されますが、ヘッダーには常に文字 (各列に A、B、C...) のみが含まれます。ある時点ですべてがうまくいきましたが、その特定のテーブルに別のモデルを設定したいと思ったので、まったく新しいモデルを作成JPanel
してゼロから設定しても、ラベルが正しく表示されなくなりました。
これは私のカスタム TableModel クラスです
public class MyTableModel extends AbstractTableModel{
private ArrayList<Options> list;
String[] headers;
public MyTableModel(ArrayList<Options> list, String[] headers) {
this.list = list;
this.headers = headers;
}
@Override
public int getRowCount() {
return this.list.size();
}
@Override
public int getColumnCount() {
return headers.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex == 0) {
return list.get(rowIndex).getId();
}
if(columnIndex == 1) {
return list.get(rowIndex).getText();
}
else {
return null;
}
} }
そして、これはjframeクラス(私が実行したもの)のコードの一部です
ArrayList<Options> list;
String[] optionHeaders = {"id", "text"};
public table2frame() {
initComponents();
list = (ArrayList) zadanie_2_app.Zadanie_2_app.findAll();
JTable table2 = new JTable(new MyTableModel(list, optionHeaders));}