0
私はクエリ用のクラスとGUI用のクラスを持っています。だから私のGUIクラスで、私はこれらの公共メンバーがあります。クエリクラスで、私はこの方法を持っているが2つのクラスを使用してResultSetからjTableを取り込むことができません
model = (DefaultTableModel) table.getModel();
table = new JTable();
を:
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();
String[] attributes = new String[9];
GUI rg = new GUI();
while (rs.next()) {
attributes[0] = rs.getString(1);
attributes[1] = rs.getString(2);
attributes[2] = rs.getString(3);
rg.model.insertRow(rg.table.getRowCount(), new Object[] {
attributes[0], attributes[1], attributes[2]});
}
} catch (Exception e) {
e.printStackTrace();
}
}
それは例外を挿入したり投げていません。それは何もしません。私がwhile-loop
のコンソールに印刷しようとしたにもかかわらず、適切なデータが印刷されます。データベースと接続は正常です。
クエリを実行した後にGUIクラスで何かする必要がありますか?
ショートカットは大丈夫です!私は最も簡単な方法を探しています。
ありがとうございました。しかし、動作しませんでした。 DefaultTableModel(..)のパラメータとして行と列の数を指定しようとしました。何も変わりません。私の挿入コードは正しいですか? –
なぜデータベースロジックに新しいGUIを作成していますか? 1)フレームを作成する、2)JTableを作成する必要があります。テーブルをJScrollPaneに追加して、スクロールペインをフレームに追加します。 3)。次に、データの行をテーブルモデルに挿入するメソッドがあります。最初にこのロジックをハードコードされたデータで処理します。それでは、データベースコードについて心配してください。 – camickr
また、9項目の配列を作成した後、3項目だけを配列に追加するのはなぜですか?なぜ、データをモデルに追加するために2番目の配列を作成するのですか? insertRow()メソッドを使用する必要はありません。 addRow(...)メソッドを使うだけで、自動的に行がデータベースの最後に追加されます。ハードコードされたデータをテーブルに読み込む最初のステップでさらに助けが必要な場合は、問題を示す適切な[mcve]を投稿してください。まず、コードを再構成してより論理的なものにする必要があります。 – camickr