2014-09-01 8 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

링크 없음. 우리는 자원 봉사자이므로 좀 더 쉽게 도와 줄 수 있도록 약간의 노력을 기울여야합니다. 링크에서 코드를로드했지만 읽을 수 있도록 서식을 지정해야합니다. 다시 한 번이 질문에 넣어야합니다. –

답변

1

의 문제가이있을 수 있습니다 :

if(input == "xx") 

은 문자열의 평등을 확인하는 ==를 사용하지 마십시오. .equals(...)을 사용하십시오.

+0

고맙습니다, 그게 문제입니다 :) – honzix

관련 문제