【问题标题】:How to show the whole column in a text area?如何在文本区域中显示整列?
【发布时间】:2016-04-08 05:54:13
【问题描述】:

我想在 SQL 数据库的文本区域中显示整个列,但在 TextArea 中它只显示最后一行数据。解决办法是什么?

try
{
    Class.forName("oracle.jdbc.driver.OracleDriver");
                   con=DriverManager.getConnection("jdbc:oracle:oci8:@localhost:1521:XE","tushar","yahoo123");

    st=con.createStatement();

    rs=st.executeQuery("select CUSTOMER_ID from demo_customers" );
        while(rs.next())
        {

        String CUSTOMER_ID  = rs.getString("CUSTOMER_ID");                   

        t2.setText("ID: " + CUSTOMER_ID); //JTextArea t2=new TextArea();

        }

    st.close();
    con.close();
    }
catch(Exception e)
{

     System.out.println(e.getMessage());        
}   

【问题讨论】:

  • 每次调用setText,都是在重置文本区域的内容。您似乎正试图将其用作添加剂方法。相反,请考虑使用StringBuilder 来构建内容,然后调用setText 一次。
  • setText(...) 替换 TextArea 的文本,您需要附加新值(例如:t2.append("ID: " + CUSTOMER_ID);)。

标签: java swing jdbc jtextarea


【解决方案1】:

您应该新文本新文本追加到您之前的文本中,而不是设置文本。添加换行符也可能是个好主意:

while(rs.next()) {
   String CUSTOMER_ID  = rs.getString("CUSTOMER_ID");                   
   t2.append("ID: " + CUSTOMER_ID+"\n");    
}

【讨论】:

  • 不要使用 StringBuilder,这将需要两倍的内存。一个用于 StringBuilder 中数据的副本,另一个用于 Document 中的数据。只需将文本直接附加到文档。
  • @camickr 你是对的 - 对于会很烂的大桌子。删除了。
  • (1+) 用于附加 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
相关资源
最近更新 更多