[英]Data transfer between JFrames
我有JFrame
1,它显示JLabel
“余额”——我的银行账户余额和 2 个JButton
组件(添加收入;添加支出)。 通过单击这些按钮之一,我会隐藏主框架并打开我添加数据的费用收入框架。
在我将金额输入JTextField
组件并单击“保存”按钮后,在对话框字段中我可以看到我的记录已保存,但是当我单击“返回”按钮时,“余额”标签保持为 0,就好像没有输入任何内容一样。
有人可以帮助我吗? 我的代码现在一团糟,所以我怀疑它会有所帮助。
这是一个简单的例子,我试图重建你的程序:
public class Class {
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
Frame2 frame2 = new Frame2();
frame1.setChildWindow(frame2);
frame2.setParentWindow(frame1);
}
}
第一帧:
import javax.swing.*;
class Frame1 extends JFrame {
private int balance = 0;
private JLabel balanceLabel = new JLabel(String.valueOf(balance));
private Frame2 childWindow;
Frame1() {
JPanel panel = new JPanel();
panel.add(new JLabel("Balance:"));
panel.add(balanceLabel);
JButton balanceButton = new JButton("Balance");
balanceButton.addActionListener(e -> {
childWindow.setVisible(true);
setVisible(false);
});
panel.add(balanceButton);
getContentPane().add(panel);
pack();
setVisible(true);
}
void setChildWindow(Frame2 childWindow) {
this.childWindow = childWindow;
}
void addBalance(int balance) {
this.balance+=balance;
balanceLabel.setText(String.valueOf(this.balance));
}
}
帧 2:
import javax.swing.*;
class Frame2 extends JFrame {
private Frame1 parentWindow;
Frame2() {
JComboBox<Integer> comboBox = new JComboBox<>(new Integer[] {1,2,3,4,5,6,7,8,9});
JButton addButton = new JButton("add");
addButton.addActionListener(e -> {
parentWindow.addBalance((Integer)comboBox.getSelectedItem());
parentWindow.setVisible(true);
setVisible(false);
});
JPanel panel = new JPanel();
panel.add(comboBox);
panel.add(addButton);
getContentPane().add(panel);
pack();
}
void setParentWindow(Frame1 parentWindow) {
this.parentWindow = parentWindow;
}
}
如果您还有其他问题,请随时提问!
(但是顺便说一句,在你的下一个问题中,发布一些代码,以便其他人可以更好地帮助你。即使它是一团糟,其他人也可以帮助你解决这个问题,并给你提示你可以做得更好或你如何可以写你的代码更干净^^)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.