私は2つのクラスを持っています。最初はjTableを持つGUIともう1つはデータベースを照会するクラスです。 同じクラス内のテーブルに行を追加すると問題はありません。私はこのように使いました:別のクラスからjTableを取り込む
((DefaultTableModel) table.getModel()).addRow(values);
values
は、行の内容を保持するオブジェクトです。 これは問題なく動作しています。しかし、移入は別のクラスから行う必要があります。だから私は、クエリのクラスを持っている:
((DefaultTableModel) rg.table.getModel()).addRow(values);
rg
は、GUIクラスのオブジェクトですが。 table
は公開です。
これは例外をスローすることさえできません。
クエリクラスで変更する必要はありますか?ここに私の方法は、クエリクラスにあります:
public void selectPassengers(int rows) {
PreparedStatement pst = null;
ResultSet rs = null;
String query = "SELECT * FROM brs.passenger";
try {
pst = con.prepareStatement(query);
rs = pst.executeQuery();
Object[] attributes = new Object[9];
Register rg = new Register();
while (rs.next()) {
attributes[0] = String.valueOf(rs.getString(1));
attributes[1] = rs.getString(2);
attributes[2] = rs.getString(3);
attributes[3] = rs.getString(4);
attributes[4] = rs.getString(5);
attributes[5] = rs.getString(6);
attributes[6] = rs.getString(7);
attributes[7] = rs.getString(8);
attributes[8] = rs.getString(9);
((DefaultTableModel) rg.table.getModel()).addRow(attributes);
}
} catch (Exception e) {
e.printStackTrace();
}
}
- DBからのフェッチデータが細かいです。私はそれらをコンソールに印刷することができました。
- jTableはが正しく構築されていると仮定します。 は正しく行を挿入できますが、GUIクラス自体(jTableがあるところの クラス)内にしか挿入できないため、これを伝えることができます。
- 挿入ロジックを別のクラス(クエリクラス)に移動すると、私が詰まっている になります。
コードを表示せずにバグについて質問しているので、私はこの質問をdownvotedしました。具体的なコードがなければ、問題は何かを推測することしかできません。これはあなたや将来の読者には役に立たないものです。問題の[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を表示するために質問を編集することができれば、このdownvoteは取り消されるかもしれません。 –
ありがとうございます。編集されました、私はそれが今では十分役に立つと思います。 –
あなたのGUIクラスが消費できる "population"クラスから新しい 'TableModel'を生成してください – MadProgrammer