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