Java';s文本字段无法解析,可以';看不见

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;

我一直在尝试一个类项目,其中我必须设置一个面向GUI的转换程序,我“我试图将数据从类的一个方法传递给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
声明为静态?