2016-09-29 12 views
0

私は、各行のすべての列が1つのjList項目として表示されるようにjListを作成するデータベースを持っています。私はそれがすべて表示されていないので、テキストの行があまりにも遠く水平に起こっている、「行の折り返し」ではありませんstringbuilderのJlist/next行の行折り返し

しかし、
  1. を必要に応じて垂直スクロールバーを設定しておらず、水平決して働いているしています。

  2. Iが垂直のようなリストする列を希望:

    について
    COLUMN1: column1 info COLUMN2: column2 info COLUMN3: column3 info 
    

    :私はそれのような水平であるように、

    代わり

COLUMN1: column1 info 
COLUMN2: column1 info 
COLUMN3: column1 info 
COLUMN4: column1 info 

これは私が.append( "\ n")と.append(System.getProperty( "line.separator"))を試しました;どちらもうまくいきませんでした。

これらの問題のいずれかまたは両方を解決する最良の方法は何ですか?

ありがとうございます!

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           

    DefaultListModel model = new DefaultListModel(); 
    jList1.setModel(model); 
    final String SPACE = " "; 
    StringBuilder sBuilder = new StringBuilder(); 
    String sqlQuery = "select Column1, Column2, Column3, Column4, Column5 from APP.DATA123 " 
      + "where (Column1 = ?) AND (Column2 = ?) AND (Column3= ?) OR (Column2 = ?) AND (Column3 = ?)"; 


     String abc = jTextField2.getText(); 
     String cba = (String)jComboBox1.getSelectedItem(); 
     String cab = (String)jComboBox2.getSelectedItem(); 
     String data = "jdbc:derby://localhost:1527/sample"; 
    try (
      Connection conn = DriverManager.getConnection(
      data, "app", "app"); 
      PreparedStatement st = conn.prepareStatement(sqlQuery)) { 

     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     st.setString(1, abc); 
     st.setString(2, cba); 
     st.setString(3, cab);  
     st.setString(4, cba); 
     st.setString(5, cab); 
     ResultSet rec = st.executeQuery(); 


     while (rec.next()) { 
     sBuilder.setLength(0); 
     sBuilder.append(rec.getString("Column1")).append(SPACE) 
       .append(rec.getString("Column2")).append(SPACE) 
       .append(rec.getString("Column3")).append(SPACE) 
       .append(rec.getString("Column4")).append(SPACE) 
       .append(rec.getString("Column5")).append(SPACE); 

     model.addElement(sBuilder.toString());   
     } 
     st.close(); 
+1

"Offtopic:"ロバートマーティンの "Clean code"を調べるとよいでしょう。あなたのコードはそのメリットがあります。 **たくさん**。あなたはその貧しい方法の中であまりにも多くのことをしています。真剣に:恐ろしいスタイル。 – GhostCat

+0

私は時間があれば私はそれを見て、私に休憩を与える、私はソフトウェアの人ではない私は薬剤師であり、1ヶ月LoLでJavaを学んだ。私は21日で「Sam's Teach Yourself Java」を読む。 – Evan12

答えて

1

それがすべて表示されていないので、テキストの行があまりにも遠く水平に起こっている、「行の折り返し」ではありません。これに対して、私は.append( "\ n")と.append(System.getProperty( "line.separator"))を試しました;どちらもうまくいきませんでした。

JList新しい行がレンダリングされないことを意味し、デフォルトのレンダラーとしてJLabelを使用しています。あなたがhtmlでコンテンツをレンダリングに取り掛かるが、与えられた可能性が...

が垂直な

としてリストする列をたいと思います...あなたはJTableを使用して検討するかもしれません。

1

と水平決して

あなたの行は、あなたが決して使用しないしたくない大きすぎます。スクロールが必要なときにJListに決定させたいとします。

は、データを追加しないでください。

私は列が垂直などの表示されたいです。

代わりに、5つの別々の項目をJListに追加する必要があります。その後、各項目が新しい行に表示されます。

関連する問題