gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:30 24 4
gpt4 key购买 nike

我有这个代码:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com