Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从不同类中的方法检索存储在ArrayList中的元素并在主类中显示它_Java_Arraylist - Fatal编程技术网

Java 如何从不同类中的方法检索存储在ArrayList中的元素并在主类中显示它

Java 如何从不同类中的方法检索存储在ArrayList中的元素并在主类中显示它,java,arraylist,Java,Arraylist,我正在做一个简单的程序,通过这个程序我创建了一个连接到数据库的Java表单 对于Java部分,我有两个类。一个包含所有GUI元素的类,我创建了另一个名为engine的类来执行处理工作 程序很简单,只需向数据库中添加名称和年龄,另一个功能就是显示迄今为止添加的所有元素 对于engine类,我有一个方法来获取数据库中存储的所有元素,并将其保存在ArrayList中 public ArrayList<String> getAllRecord() throws SQLException {

我正在做一个简单的程序,通过这个程序我创建了一个连接到数据库的Java表单

对于Java部分,我有两个类。一个包含所有GUI元素的类,我创建了另一个名为engine的类来执行处理工作

程序很简单,只需向数据库中添加名称和年龄,另一个功能就是显示迄今为止添加的所有元素

对于engine类,我有一个方法来获取数据库中存储的所有元素,并将其保存在ArrayList中

public ArrayList<String> getAllRecord() throws SQLException
{
    Statement st = connection().createStatement();
    st.executeQuery("SELECT * FROM RECORD");
    ResultSet rs = st.getResultSet();
    String age2;
    String name2;

while(rs.next()){
    name2 = rs.getString("NAME");
    dRecList.add(name2);
    double age = rs.getDouble("AGE");
    age2 = String.valueOf(age);
    dRecList.add(age2);
}
   return dRecList;
}
public ArrayList getAllRecord()抛出SQLException
{
语句st=connection().createStatement();
st.executeQuery(“从记录中选择*);
ResultSet rs=st.getResultSet();
字符串年龄2;
字符串名称2;
while(rs.next()){
name2=rs.getString(“名称”);
添加(名称2);
双倍年龄=rs.getDouble(“年龄”);
age2=字符串.valueOf(年龄);
dRecList.add(2岁);
}
返回德雷克利斯特;
}
对于main类,我创建了一个按钮来访问engine类以获取所有记录,它确实提供了所有元素

private void showBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:
    engine en2 = new engine();
 for(int i=1; i < en2.getAllRecord().size(); i++){
            resultTxt.append(en2.getAllRecord().get(i));
        }
}
private void showBtnActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
发动机en2=新发动机();
对于(int i=1;i
我面临的问题是,如何在文本区域的新行中显示每个元素?

添加
\n

for(int i=1; i < en2.getAllRecord().size(); i++){
            resultTxt.append(en2.getAllRecord().get(i)+"\n");
        }

首先,不是强制性的,但最佳实践是,在name和age属性上使用getter和setter创建一个表示表模型的对象

在循环结果集时,应该实例化一个新的模型对象(具有名称和年龄),并将其添加到模型对象列表中(所有对象的列表显然相同)


使用此列表,您可以执行所需操作

,以便正确获取ArrayList的所有结果?为什么不在ArrayList的结果后面附加一个“\n”?您好,我创建了一个返回ArrayList的方法,并在主类中创建了一个对象变量来调用该方法。因此,显示了结果。我认为该方法将所有元素作为一个结果返回,可能很难将每个元素分解并适当显示。您好,感谢您的快速回复,但是它没有在文本区域返回任何结果。我想可能有一种方法可以访问arrayList变量dRecList并显示其中的项目,但是我没有成功。使用
StringBuilder
创建
String
,然后将其设置为TextArea的文本更好。大家好,我尝试了以下操作并得到了一个结果,但是元素仍然显示在一行中,而不是每个元素都显示在新行中,请尝试{resultText.append(en2.getAllRecord().toString();}catch(SQLException ex){Logger.getLogger(main.class.getName()).log(Level.SEVERE,null,ex)}@JasvinderSingh,您是否添加了
\n
for(String data: en2.getAllRecord()){
                resultTxt.append(data+"\n");
          }