DocumentListener不打印消息

时间:2014-09-01 14:24:08

标签: java swing listener jtextfield

我正在尝试编写一个程序,在这种情况下键入某些内容(xx)时会给我一条消息,但它不打印消息。你能告诉我为什么会这样吗? 当我输入代码时,我还检查了代码是否等于xx,而且确实如此。

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)
     {   
     }
          }
}

1 个答案:

答案 0 :(得分:1)

你的问题可能在这里:

if(input == "xx")

不要使用==来检查字符串是否相等。使用.equals(...)