我想在一个类中使用getter和setter设置变量,并且能够从另一个类中获取该值
第1课
btnLockIn = new JButton("Lock In");
btnLockIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
a = textTable.getText();
setTable(a);
System.out.println(a);
}
});
这将表格编号设置为用户输入的内容,我想要做的是获取他们设置为在另一个类中使用的值。目前它在第二个类中使用getTable,我得到的是默认值,其设置为null。
第2课
Class1 log = new Class1();
final String Table_no = log.getTable();
JLabel lblTableNo = new JLabel("Table no: " + Table_no);
lblTableNo.setBounds(10, 15, 100, 14);
contentPane.add(lblTableNo);
这是一个应该使用从第一个类中获取的变量并将其显示在GUI顶部的类。但正如前面提到的那样只显示null。
我确信答案很简单但是现在一直困扰着我,而且我对Java的知识有限,任何帮助都会受到赞赏
答案 0 :(得分:1)
你的问题是:
Class1 log = new Class1();
这将创建一个Class1的新实例。
想想买一个新球并在上面贴一个贴纸。球是Class1,按钮是贴纸。你试图买一个新球并从中取出贴纸,但贴纸仍在第一个球上。您需要访问已经制作的课程。尝试使用静态方法。
答案 1 :(得分:0)
选项1:Class1传递给Class2
在Class2
Class1 log = class1;
并且应该在Class2
的构造函数中使用class1。
当用户3769237注意到时,应在触发ActionListener
事件后调用您的getter。
选项2:Class2实现ActionListener
在Class1
btnLockIn.addActionListener(yourClass2Instance);
让Class2
实施ActionListener
并执行如下
@Override
public void actionPerformed(ActionEvent arg0) {
a = textTable.getText();
// do with a whatever you want
}