テーブルからアイテムを取得してJListに表示しようとしています。私はコードを実行し、何もJListに表示されず、エラーもありませんでした。私はコードをデバッグし、テーブル項目の長さまで数えました。 に続いてthis答えます。データベーステーブル項目がJListに表示されない
static Connection conn = new DBConnection().connect();
private JList listDepartments = null;
public AddDepartment() {
listDepartments = new JList();
listDepartments.setBounds(189, 33, 1, 1);
contentPane.add(listDepartments);
update_departments(listDepartments);
}
private static void update_departments(JList listDepartments) {
try {
String sql = "Select * FROM Departments";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
DefaultListModel listModel = new DefaultListModel();
while (rs.next()) {
System.out.println("inside while");
String departmentName = rs.getString("Name");
listModel.addElement(departmentName);
}
listDepartments.setModel(listModel);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
表の内容: 名:部署
列: - ユニークINT主キー、自動インクリメント、
名 -
ID VARCHAR(255)
'listDepartments.setBounds(189、33、1、1);' setBounds(...)は使用しないでください。 Swingはレイアウトマネージャで使用するように設計されています。そして、間違いなく1の幅/高さを使用しないでください(これはペイントするものではありません)。まず、JList内のデータをハードコードする場所で作業する簡単な例を取得します。その後、Swingの基本を理解したら、データベースからデータを取得することによってコードをより動的にします。さらに助けが必要な場合は、ハードコードされたデータを使用するコードの適切な[SSCCE](http://sscce.org/)を投稿してください。 – camickr
'SetBounds'はJListをdraged-dropしたときに自動的に作成されます。 – Munchmallow
それを修正してください。 IDEのドラッグアンドドロップ機能を使用しないでください。自分でGUIを作成します。手動で作成したSwingコンポーネントでJListを使用する方法を示す作業例については、[リストの使用方法](http://docs.oracle.com/javase/tutorial/uiswing/components/list.html)のSwingチュートリアルを参照してください。 – camickr