java - 来自不同文件的基本 JAVA 变量范围

标签 java class variables

我有这个代码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class pruebaframe extends JFrame
{
       public static String elurl="wut";
       JPanel jp = new JPanel();
       JLabel jl = new JLabel();
       JTextField jt = new JTextField(50);
       JButton jb = new JButton("Enter");

       public pruebaframe()
       {
              setTitle("Inserte el URL");
              setVisible(true);
              setSize(600, 200);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              jp.add(jt);


              jp.add(jb);

              jb.addActionListener(new ActionListener()
              {
                      public void actionPerformed(ActionEvent e)
                      {
                             String input = jt.getText();
                             elurl=input;
                             jl.setText(input);
                      }
              });


              jp.add(jl);
              add(jp);

       }

    public static String getElurl() {
        return elurl;
    }

    public static void setElurl(String elurl) {
        pruebaframe.elurl = elurl;
    }


}

现在我想在另一个类中使用 elurl 变量,如下所示:

 String url1;
 pruebaframe t = new pruebaframe();
url1 = t.getElurl();

所以每次我在 Jtextfield url1 上输入内容时都会更改它的值。问题是它不起作用。它不会改变值。我知道这是一个简单的问题,我只是找不到我错在哪里。

最佳答案

执行操作时传递peuebaframe对象。通过使用另一个类的构造函数或方法。然后您可以获得 jTextField 的更新值。

AnotherClass.java

public class AnotherClass {

    private pruebaframe t;

    public AnotherClass(pruebaframe t) {
        this.t= t;
    }

    public void print() {
        System.out.println("Printing From Another Class: " + t.getElurl());
    }
}

并执行以下操作。

jb.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String input = jt.getText();
            elurl = input;
            jl.setText(input);
            AnotherClass anotherClass = new AnotherClass(pruebaframe.this);
            anotherClass.print();
        }
    });

输出:

Printing From Another Class: <your updated jTextValue>

关于java - 来自不同文件的基本 JAVA 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726036/

相关文章:

java - 如何等待窗口的退出事件?

c++ - 类的成员应该是指针吗?

c - 变量的声明

javascript - 奇怪的 JavaScript 行为,在调用转换器函数之前变量更改值

java - RMI 连接何时创建?

java - java中的消息

java - "Reverse"XSLT(解析和构建 XML DOM 的语言)

java - 如果父类/接口(interface)发生变化,类的字节码是否会发生变化?

C++::Pointers - 从基类到派生类的转换

php - 我无法回显变量,但我可以在函数中使用它吗?