我有这样的代码:基本的Java不同文件中的变量范围
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更改它的值。事情是它没有工作。它不会改变价值。我知道这是一个简单的问题,我只是找不到我错在哪里。
因为他们是不是你正在使用的同一个对象。 New关键字将创建其他实例,您需要的是控制您创建的实例的数量。 – 2014-11-04 01:02:09
但即时创建只是1“pruebaframe”。在另一个文件,但仍然。 – 2014-11-04 01:04:00
我不确定你想要达到什么,但是因为'elurl'是静态的,所以只能有一个值。是否有理由让“elurl”静态? (虽然它是静态的可能不是价值不更新的原因)另外,你在哪里调用'setElurl'?显然,如果你从未设置过,elurl的值不会改变。你在寻找一个侦听文本字段修改的事件侦听器吗? – 2014-11-04 01:58:30