2014-11-04 49 views
-2

基本上,這是需要採取什麼措施:無法通過匿名類得到一個JTextField文本

  1. 提交按鈕被點擊,ActionListener的撿起來,並打印什麼是在文本框,在時提交。

出於某種原因,它沒有拿起文本框內的文本? 「提交按鈕按下」按順序打印! 這是一個愚蠢的問題,但我不習慣匿名類。我相信問題是變量修飾符。這裏是我的代碼簡化:

public class MainWindw extends JFrame { 

public static JTextField txt1; 
final JButton submit; 

public MainWindw() 
{ 
    //add panel...add textfield etc.. 
    txt1 = new JTextField(); 
    submit = new JButton("Submit"); 


     submit.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 

      System.out.println("Submit button pressed" + txt1.getText());} 

     } 
    }); 
    } 
} 
+0

'submit.addActionListener'這是在哪裏調用的?看起來好像你只是在字段中漂浮,這會產生編譯錯誤。此外,「*提交按鈕按*」打印? – 2014-11-04 22:45:29

+0

在構造函數中,對不起。 – user2855405 2014-11-04 22:48:07

+2

請發佈一個我們可以測試的小型可編譯可運行程序,以及[mcve](http://stackoverflow.com/help/mcve)。無法編譯的代碼片段通常毫無價值。你問「爲什麼我的代碼不工作?」,請讓我們知道。 – 2014-11-04 22:48:48

回答

0

我試過這個解決方案,它的工作原理。我honestrly在您的代碼中看不到任何問題,除了一些編譯錯誤,但我認爲是因爲您簡化了代碼

public static JTextField txt1; 
final JButton submit; 

public MainWindw() 
{ 
    JFrame panel = new JFrame(); 
    txt1 = new JTextField(); 
    submit = new JButton("Submit"); 
    panel.setLayout(new FlowLayout()); 
    panel.add(txt1); 
    panel.add(submit); 
    submit.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      System.out.println("Submit button pressed" + txt1.getText()); 
     } 
    }); 
    panel.setSize(300, 300); 
    panel.setVisible(true); 
} 
+0

非常感謝,這讓我想起了我遺漏的一些東西。感謝您不要像我上面的其他人一樣投我的帖子,因爲我簡化了我的代碼。 – user2855405 2014-11-04 22:59:15

+0

@ user2855405:他所做的只是顯示你的發佈代碼沒有顯示錯誤,我們一直在**告訴**你。你離開了什麼? – 2014-11-04 23:02:56

+1

不客氣,不能投下一個問題,問題是學習;) – 2014-11-04 23:03:21

相關問題