嗨,我正在学习Java,在我的项目中,我试图将数据传递给另一个JFrame。
这是我的Guest Frame类
public class GuestFrame extends javax.swing.JFrame {
private List<String> list = new ArrayList<String>();
public GuestFrame(){
initComponents();
}
}
我将数据添加到arraylist的方式是通过将JList中的选定项添加到逐一追加的购物车中,如下所示:
private void kButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String receiveList = lstEntitety.getSelectedValue().toString();
list.add(receiveList);
//System.out.println(list.toString()); outputs all the data added
该列表的getter函数:
public List<String> getList() {
return list;
}
我想做的是在另一个JFrame中显示所有添加的食物
public class CartFrame extends javax.swing.JFrame {
private GuestFrame food;
public CartFrame() {
initComponents();
food= new GuestFrame();
List<String> list = food.getList();
//Here I am trying to output the arraylist that I appended in prevous frame
jTextArea1.setText(list.toString());
}
进入CartFrame的结果是数组似乎输出空[]
我想这可能是因为在Guest frame构造函数中它被重写了吗?
我不确定如何解决此问题。
答案 0 :(得分:1)
我认为有3种解决方案,
1.可以使用数据库来操作列表数据。因此#parent {
width: 200px;
height: 200px;
background-color: red;
}
#child {
position: fixed;
top: 50px;
left: 50px;
width: 100px;
height: 100px;
z-index: 2;
background-color: blue;
}
#other {
position: fixed;
top: 25px;
left: 25px;
width: 50px;
height: 50px;
z-index: 1;
background-color: green;
}
用于保存数据,而<div id="parent">
<div id="child"></div>
</div>
<div id="other"></div>
可以从数据库获取数据而无需依赖其他类属性。
2.其次,可以使用java.util.Properties来操作列表数据。
GuestFrame
将数据保存在CartFrame
中:
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("xyz.properties");
prop.load(in);
将数据加载到GuestFrame
中:
prop.setProperty("dataSize", "(list.lenght())");
prop.setProperty("data1", "...");
prop.setProperty("data2", "...");
prop.setProperty("...", "...");
....
prop.store(new FileOutputStream("xyz.properties"), null);
3.最后一种选择是使CartFrame
成为静态prop.getProperty("dataSize");
//loop i=0 until < dataSize
list.add(prop.getProperty("data"+i));
,这样其他类就可以直接从private List<String> list = new ArrayList<String>();
访问list属性,而无需创建实例。
private static List<String> list = new ArrayList<String>();
GuestFrame
静态属性直接与该类相关联。即使不创建类的实例也可以调用它们,例如:ClassName.propertyName