Java 如何在文本区域中显示整个列?

Java 如何在文本区域中显示整个列?,java,swing,jdbc,jtextarea,Java,Swing,Jdbc,Jtextarea,我想在SQL数据库的文本区域中显示整个列,但在文本区域中只显示最后一行数据。解决办法是什么 try { Class.forName("oracle.jdbc.driver.OracleDriver"); con=DriverManager.getConnection("jdbc:oracle:oci8:@localhost:1521:XE","tushar","yahoo123"); st=con.createStatement();

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

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());        
}   

不要将文本设置为每行的新值,而应将新文本附加到以前的文本上。添加换行符也可能是一个好主意:

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

每次调用
setText
,都会重置文本区域的内容。似乎您正试图将其用作加法。相反,可以考虑使用
StringBuilder
构建内容,然后调用
setText
一次。
setText(…)
替换
TextArea
的文本,您将需要附加新值(例如:
t2.append(“ID:+CUSTOMER\u ID);
)。不要使用StringBuilder,这将需要两倍的内存。一个用于StringBuilder中数据的副本,另一个用于文档中的数据。只需将文本直接附加到文档中即可。@camickr你说得对-对于那些糟糕的大表来说。删除了附加的。(1+)