• ベストアンサー

JListに一覧にして表示

データベースから取得した結果を JListに一覧にして表示させたいのですが、 list.setText(table);の部分の setTextメソッドでシンボルが見つけられないと エラーが出てしまいます。 JListにsetTextを使っているからなのだと思いますが、 APIを探したのですがなかなかわかりません どう対処したらよいでしょうか?? private Connection connect() throws Exception{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/???"; String user = "root"; String pass = ""; Connection con = DriverManager.getConnection(url,user,pass); return con; } Bookmark(){ JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab("表示", createPanel1()); } private JPanel createPanel1(){ JPanel p = new JPanel(); JList list = new JList(); JScrollPane scrollPane = new JScrollPane(); scrollPane.getViewport().setView(list); scrollPane.setPreferredSize(new Dimension(480, 340)); p.add(scrollPane); try{ //DBに接続 Connection con = connect(); //SQL発行先ほど指定したConnection con を利用 Statement stmt = con.createStatement(); String sql ="select * from Browser"; ResultSet rs = stmt.executeQuery(sql); //結果の取得 while(rs.next()){ String name = rs.getString("name"); String address = rs.getString("address"); String table = "<html><table>" + "<td>" + name + "</td>"+ "<td>"+ address +"</td>"+ "</table></html>"; list.setText(table); } //切断 con.close(); } catch(Exception ex) { System.out.println(ex);

質問者が選んだベストアンサー

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.3

まあ、JListはわかりにくいのは確かですが、もう少し自分でなんとかするようにしないと、1から10まで全部「教えてください」になってしまいますよ。 >String[] Data = {}; >JList list = new JList(Data); >ってことですか? APIドキュメントにそうだと書いてありますね。 ただし、コンストラクタに渡す前に配列の中身を設定しておかなければダメですよ。 これでうまくいかない場合は、他に原因があります。 配列の中身を標準出力に出して確認してみるとか、順に調べてください。 それと、配列を使うのは間違いではありませんが、DefaultListModelを使った方がいろいろと便利です。 ・配列のように上限を設定しておく必要がない ・表示した後でも、追加や削除ができる という理由です。

koromo
質問者

お礼

解決しました~~~ みなさんありがとうございます☆☆

koromo
質問者

補足

private JPanel createPanel1(){ JPanel p = new JPanel(); try{ //DBに接続 Connection con = connect(); //SQL発行先ほど指定したConnection con を利用 Statement stmt = con.createStatement(); String sql ="select * from Browser"; ResultSet rs = stmt.executeQuery(sql); //結果の取得 while(rs.next()){ String name = rs.getString("name"); DefaultListModel listModel = new DefaultListModel(); listModel.addElement(name); JList list = new JList(listModel); JScrollPane scrollPane = new JScrollPane(); scrollPane.getViewport().setView(list); scrollPane.setPreferredSize(new Dimension(480, 340)); p.add(scrollPane); } //切断 con.close(); } catch(Exception ex) { System.out.println(ex); } return p; } 一つしか表示されないです(泣

その他の回答 (2)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

>ってことですか? と書かれる前にとりあえず試してみましょう。 ヒントを得たのに、何も試さずに次々と質問をしては回答者に対して失礼です。 SwingコンポーネントのサンプルコードはJavaDocの中にリンクがあります。 一通り目を通してみてはいかがでしょうか?

koromo
質問者

補足

すみません、、 >ってことですか? と書いたのは実行してたんですが できなかったので、これでよかったのでしょうか? という意味で書きました。

  • t98907
  • ベストアンサー率0% (0/2)
回答No.1

JListは配列に対してnewしなければダメなのでは? それと、setTextというメソッドはありましたっけ?

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JList.html
koromo
質問者

補足

>JListは配列に対してnewしなければダメなのでは? String[] Data = {}; JList list = new JList(Data); ってことですか? >setTextというメソッドはありましたっけ すみません、一度JListでできないみたいなんで JLabelで試していてそのときsetTextを使ってたので そのまま載せてしまいました。

関連するQ&A

専門家に質問してみよう