你可以使用按钮设置变量并在另一个类中使用它吗?

时间:2014-06-28 20:57:46

标签: java class user-interface actionlistener accessor

我想在一个类中使用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的知识有限,任何帮助都会受到赞赏

2 个答案:

答案 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
}