2014-09-01 97 views
-2

我正在嘗試編寫一個程序,該程序在本例中輸入了某些內容(xx)時會給我一條消息,但它不會打印消息。你能告訴我爲什麼會發生這種情況嗎? 我也檢查了代碼,如果它等於xx當我鍵入它,它是。DocumentListener不打印信息

import javax.swing.*; 
import java.awt.*; 
import javax.swing.text.*; 
import javax.swing.event.DocumentEvent; 
import javax.swing.event.DocumentListener; 
class acc 
{ 
public static void main(String[] args) 
{ 
ramka ramka = new ramka(); 
panel panel1 = new panel(); 
ramka.show(); 
ramka.add(panel1); 
} 
} 
class ramka extends JFrame 
{ 
public ramka() 
{ 
    setSize(800, 600); 
    setTitle("Super duper programer"); 
    Container kontener = getContentPane(); 
    textfield pole = new textfield(); 
    kontener.add(pole); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    sluchacz listener = new sluchacz(); 
    pole.getDocument().addDocumentListener(listener); 
} 
} 
class panel extends JPanel 
{ 
public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 
} 
} 
class textfield extends JTextField 
{ 
} 
class sluchacz implements DocumentListener 
{ 
    @Override 
    public void changedUpdate(DocumentEvent e) 
    {} 
    @Override 
    public void removeUpdate(DocumentEvent e){} 
    @Override 
     public void insertUpdate(DocumentEvent e) 
      { 
      try 
      { 
     String input = e.getDocument().getText(0, e.getDocument().getLength()).trim(); 
if(input == "xx") 
{ 
    String message = JOptionPane.showInputDialog("You've just typed ''xx''"); 
} 
    } 
    catch(BadLocationException ex) 
    { 
    } 
      } 
} 
+0

請不要鏈接。我們是志願者,所以您需要付出一點努力才能更輕鬆地幫助您。我已經從鏈接加載了你的代碼,但是你需要格式化它以使其可讀 - 再一次你應該把更多的努力放在這個問題上。 – 2014-09-01 14:26:46

回答

1

您的問題可能在這裏:

if(input == "xx") 

不使用==檢查字符串平等。使用.equals(...)

+0

謝謝,這是問題:) – honzix 2014-09-01 14:30:13