Java';s文本字段无法解析,可以';看不见
我一直在尝试一个类项目,其中我必须设置一个面向GUI的转换程序,我“我试图将数据从类的一个方法传递给ActionListener,但侦听器告诉我文本字段不存在。它在同一个包和类中,我甚至尝试过像一个超级类一样扩展它,但没有用Java';s文本字段无法解析,可以';看不见,java,swing,user-interface,actionlistener,jtextfield,Java,Swing,User Interface,Actionlistener,Jtextfield,我一直在尝试一个类项目,其中我必须设置一个面向GUI的转换程序,我“我试图将数据从类的一个方法传递给ActionListener,但侦听器告诉我文本字段不存在。它在同一个包和类中,我甚至尝试过像一个超级类一样扩展它,但没有用 package convertionProg; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
package convertionProg;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class feetToMeter extends JFrame{
JTextField ftomTextField = new JTextField(10);
public static void Ftom(int d)
{
JFrame ftomWindow = new JFrame();
ftomWindow.setTitle("Conversion Program: Feet to Meters");
ftomWindow.setSize(200, 125);
ftomWindow.setVisible(true);
ftomWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
JPanel ftomPanel = new JPanel();
ftomWindow.add(ftomPanel);
JLabel ftomLabel = new JLabel("Enter a distance in meters: ");
JButton convert = new JButton("Convert");
ftomPanel.add(ftomLabel);
ftomPanel.add(convert);
ftomPanel.add(ftomTextField);
convert.addActionListener(new convertListener());
}
private static class convertListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
final double CONVERSION = 0.3048;
String input; //Store input
double meters; //Stores meter output
input = ftomTextField.getText();
meters = Double.parseDouble(input);
JOptionPane.showMessageDialog(null, "Distance in Meters is" + meters + "m");
}
}
}
您已声明
JTextField ftomTextField=newjtextfield(10)代码>作为局部变量,使其超出了您的代码>范围内的转换程序> 类。 您需要考虑变量的<代码>范围>代码>。在actionPerformed
方法ftomTextField
不可见。将ftomTextField
声明为全局
public class feetToMeter extends JFrame{
static JTextField ftomTextField = new JTextField(10);// Declare here.
public static void Ftom(int d){
..............
}
}
非常感谢。我喜欢简单的解决方案。我想先测试它,但仍然出现了一个错误,它现在说我的字符串是空的,所以它没有读取输入。您是否将ftomTextField
声明为静态?