Java 在jFrame中单击按钮时执行其他类中的方法

Java 在jFrame中单击按钮时执行其他类中的方法,java,swing,jframe,jbutton,Java,Swing,Jframe,Jbutton,我有一个名为Parser的类,它获取一些输入,进行一些计算并输出结果。我还有一个jFrame,它有一些文本字段。我误解了如何运行解析器并使用来自jFrame的输入。我不知道是否应该在解析器类中实现动作侦听器?或者我应该在jFrame中导入所有解析器类方法吗?我应该在解析器的main中运行方法,还是应该在jframe类中使用void运行 下面是我的类解析器: public class Parser{ public static List getXKeywords(String Url, i

我有一个名为Parser的类,它获取一些输入,进行一些计算并输出结果。我还有一个jFrame,它有一些文本字段。我误解了如何运行解析器并使用来自jFrame的输入。我不知道是否应该在解析器类中实现动作侦听器?或者我应该在jFrame中导入所有解析器类方法吗?我应该在解析器的main中运行方法,还是应该在jframe类中使用void运行

下面是我的类解析器:

public class Parser{
    public static List getXKeywords(String Url, int X, String html) throws Exception {
//somemethod with someoutput
    }
    public static void main(String[] args) throws Exception {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                SpyBiteDemo Sp = new SpyBiteDemo();
                Sp.setVisible(true);
             int X=Sp.getKeywordcount();
              //this top line is not correct because it can only be done when the jframe jButton1 was clicked

            }
        });              
} 
}
这是jFrame

public class SpyBiteDemo extends javax.swing.JFrame {
    /**
     * Creates new form SpyBiteDemo
     */
    public SpyBiteDemo() {
        initComponents();

    }
    public String getKeywordcount()
    {
    return jTextField4.getText();
    }
//some methods
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //get the input from the jframe
        //feed it to the parser?? how???
       String SeedUrl=jTextField1.getText();
            Parser P=new Parser();
            //I don't have access to methods 
           because they are static

    }
    }

在这里,我试图从jFrame中获取keywordcount变量,jFrame是getXKeywords方法中的int X。

我在

我在解析器类中创建了一个构造函数,并在解析器类中包括一个jframe,如下所示:

public class Parser {
        SpyBiteDemo Sp=new SpyBiteDemo();
    public Parser(SpyBiteDemo Sp)
            {
               this.Sp=Sp;
             int X = Sp.getXKeywords();
         //do whatever
      }
在jframe类执行的操作中,我调用我的解析器构造函数类:

public class SpyBiteDemo extends javax.swing.JFrame {
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

       Parser P=new Parser(this);

    }
}

你可能想好好读一读这本书。将GUI划分为模型、视图和控制器可以让您一次只关注GUI的一部分,并使开发复杂的GUI变得更加容易。@GilbertLeBlanc是的,我很久没有使用java了,我应该这样做。