Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从一个类到另一个类使用JTextField_Java_Swing - Fatal编程技术网

Java 从一个类到另一个类使用JTextField

Java 从一个类到另一个类使用JTextField,java,swing,Java,Swing,我试图在B班中使用a班的JTextField。我做了一些研究,但似乎找不到答案 下面是我的A班的样子: public A extends JFrame implements ActionListener { public A(){ chrono = new JTextField("" + sec); // déclarer final car une classe interne va acceder à ce composant chrono.setHorizontalA

我试图在B班中使用a班的JTextField。我做了一些研究,但似乎找不到答案

下面是我的A班的样子:

public A extends JFrame implements ActionListener {
  public A(){
    chrono = new JTextField("" + sec); // déclarer final car une classe interne va acceder à ce composant 
    chrono.setHorizontalAlignment(SwingConstants.CENTER);
    chrono.setEditable(false);
    chrono.setFont(new Font("Tahoma", Font.BOLD, 54));
    chrono.setText("");
    chrono.setBounds(631, 11, 127, 72);
    contentPane.add(chrono);
    chrono.setColumns(10);
  }
}
我的B班是这样的:

public class Actions extends Fenetre{
   ActionListener tache_timer;

    tache_timer = new ActionListener(){
        public void actionPerformed(ActionEvent e){
            sec++;
            String textRes = res.getText();
            if(sec == 3 ){
                res.setText("FAIL");

            }

            if(sec == 6){
                /*On realise une pause de 1 sec */
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                EcouteClavier_actionPerformed(e);
                sec = 0;

            }
            chrono.setText("" + sec);// This JTextField is not working


        }
    };
}
我尝试使用的JTextField称为chrono。我如何使用从A级到B级的chrono?你(至少)有两块巧克力

你可以。。。 通过类
a
的引用直接或间接地将
JTextField的引用传递给类
B

这通常不是一个好主意,因为它开始以某种方式将代码耦合在一起,使得以后很难进行更改,并将代码元素暴露在无法控制的更改中(一旦我引用了文本字段,是什么阻止我将其从父容器中删除?)

你可以。。。 使用a允许
B
通知相关方某些状态已更改。这样一来,
B
就不在乎谁对更改感兴趣,也不在乎他们想对更改做什么,从而使更改变得更加灵活,在将来的使用和更改也更加容易

ActionListener
是一个示例,它通知您需要对其采取操作的某些事件

您可以重用核心API中可用的许多
EventListener
s中的任何一个,或者制作自己的。然后让
A
实现此侦听器(直接或间接),并向
B
注册通知兴趣。当
B
的状态发生变化时,它将触发事件通知返回给相关方

你不应该。。。 尝试使用
静态

你有(至少)两块巧克力

你可以。。。 通过类
a
的引用直接或间接地将
JTextField的引用传递给类
B

这通常不是一个好主意,因为它开始以某种方式将代码耦合在一起,使得以后很难进行更改,并将代码元素暴露在无法控制的更改中(一旦我引用了文本字段,是什么阻止我将其从父容器中删除?)

你可以。。。 使用a允许
B
通知相关方某些状态已更改。这样一来,
B
就不在乎谁对更改感兴趣,也不在乎他们想对更改做什么,从而使更改变得更加灵活,在将来的使用和更改也更加容易

ActionListener
是一个示例,它通知您需要对其采取操作的某些事件

您可以重用核心API中可用的许多
EventListener
s中的任何一个,或者制作自己的。然后让
A
实现此侦听器(直接或间接),并向
B
注册通知兴趣。当
B
的状态发生变化时,它将触发事件通知返回给相关方

你不应该。。。 尝试使用
静态