お世話になります。
SQL文で発行された内容をJListでリスト化して表示したいです。
コマンドライン上で内容を表示することは出来ていますが、上手くGUIで表示できません。
簡単に言えば、以下の2つのプログラムを組み合わせたいです。宜しくお願い致します。
// JListプログラム //
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
class JListTest extends JFrame implements ListSelectionListener {
JListTest() {
getContentPane().setLayout(new FlowLayout());
String[] data = { "ListA", "ListB", "ListC", "ListD" };
JList lst = new JList(data);
lst.addListSelectionListener(this);
getContentPane().add(lst);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JListTest");
setSize(200, 120);
setVisible(true);
}
public void valueChanged(ListSelectionEvent e) {
JList lst = (JList)e.getSource();
System.out.println(lst.getSelectedValue());
}
public static void main(String[] args) {
new JListTest();
}
}
// SQLプログラム //
import java.sql.*;
class DbTest {
public static void main(String[] args) {
int id;
String name;
try {
// JDBCドライバの登録
String driver = "org.postgresql.Driver";
// データベースの指定
String server = "192.168.1.0"; // PostgreSQL サーバ ( IP または ホスト名 )
String dbname = "test"; // データベース名
String url = "jdbc:postgresql://" + server + "/" + dbname;
String user = "test"; //データベース作成ユーザ名
String password = "xxxxxxxxxx"; //データベース作成ユーザパスワード
Class.forName (driver);
// データベースとの接続
Connection con = DriverManager.getConnection(url, user, password);
// テーブル照会実行
Statement stmt = con.createStatement ();
String sql = "SELECT * FROM test";
ResultSet rs = stmt.executeQuery (sql);
// テーブル照会結果を出力
while(rs.next()){
id = rs.getInt("num");
name = rs.getString("name");
System.out.println(id);
System.out.println(name);
}
// データベースのクローズ
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println("SQL failed.");
e.printStackTrace ();
} catch (ClassNotFoundException ex) {
ex.printStackTrace ();
}
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Swingの一部のGUIでは表示用のクラスとデータ用のクラスを合わせて使うものがあります。
そのひとつがJListです。データ用のクラスはカスタマイズが可能ですが、とりあえず用に
javax.swing.DefaultListModelというクラスが用意されています。
これをJListのコンストラクタに指定するとDBのデータをJListに反映させることができます。
表示データを操作したいときはJListではなくDefaultListModelのオブジェクトを操作します。
たとえば、DBのデータをArrayList<String> dbdtaというコレクションに格納したとします。
//GUIの初期化
DefaultListModel dlm = new DefaultListModel(); //リストモデルの作成
JList list=new JList(dlm); //リストモデルを使用したGUIの作成
//データの反映
for(String str:dbdata){
dlm.addElement(str); //項目の追加
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
うるう年判定
-
コンストラクタの引数の中のnew?
-
【初心者です】javaで平均値を...
-
DESを使用した暗号化/復号化処...
-
javaで特定の文字列から特定の...
-
【java】同ディレクトリ別ファ...
-
Javaでデータベースの内容をGUI...
-
中カッコ{}だけの記述について
-
ArrayList でスタックを
-
NoSuchMethodErrorが解決できま...
-
Javaでlog4jを使ってログ出力を...
-
System.exit()の値を取得したい
-
randomで
-
GetterとSetterをやったのに。
-
processingである処理をした画...
-
VBAで配列の計算
-
ダブルクォーテーションのrepla...
-
パソコンキーボードで時分秒を...
-
JSPやサーブレットでSystem.out...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
Socketの接続のタイムアウトを...
-
コンストラクタの引数の中のnew?
-
javaのプログラミングで作るRPG...
-
System.exit()の値を取得したい
-
JSP/Servletのパラメータの受け...
-
Processing :指定フォルダ内の...
-
javaで特定の文字列から特定の...
-
インタフェイス実装と抽象クラ...
-
Javaで日本語の出力が文字化けする
-
randomで
-
StringクラスのcompareToメソッド
-
【初心者です】javaで平均値を...
-
DESを使用した暗号化/復号化処...
-
初心者なので教えてほしいです。
-
ArrayList でスタックを
おすすめ情報