2016-04-24 4 views
1

私はParserという名前のクラスを持っています。これは何らかの入力を受け取り、何らかの計算をして結果を出力します。私はまたいくつかのテキストフィールドを持つjFrameを持っています。パーサーを実行し、jFrameからの入力を使用する方法を誤解しています。パーサークラスでアクションリスナーを実装する必要があるかどうかわかりません。 jFrame内のすべてのParserクラスメソッドをインポートする必要がありますか?私はParserのメインでメソッドを実行する必要がありますか、またはjframeクラスでvoidを使用する必要がありますか?ここでボタンをjFrameでクリックすると他のクラスのメソッドを実行します

は私のクラスのパーサである:

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 

    } 
    } 

ここでは、getXKeywordsメソッドのint XであるjFrameからkeywordcount変数を取得しようとしています。

+0

あなたは[モデル/ビュー/コントローラパターン]上に読みたいかもしれません(https://en.wikipedia.org/wiki/Model% E2%80%93view%E2%80%93コントローラ)。 GUIをモデル、ビュー、コントローラに分割することで、一度にGUIの1つの部分に集中することができ、複雑なGUIをもっと簡単に開発できます。 –

+0

@GilbertLeBlancええ、それは私がjavaで動作しなかったことは長い時間でした、私はそれを行う必要があります。 – Nickool

答えて

0

私は私のパーサークラスのコンストラクタを作成しても、次のようにパーサクラス内のJFrame含まthis link

の助けを借りて、私の問題を解決しました:

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); 

    } 
} 
関連する問題