我正在尝试编写一个程序,在这种情况下键入某些内容(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)
{
}
}
}
答案 0 :(得分:1)
你的问题可能在这里:
if(input == "xx")
不要使用==
来检查字符串是否相等。使用.equals(...)
。