0
嗨看看這段代碼。我的目標是讓我的應用程序反應,當我將輸入一個textarea之一在slowa[]
列出的單詞之一。正如你可以看到我創建inputMethodListner
然而,當我輸入任何它正在工作的詞。我tryied把調試打印,看看是怎麼回事,我看到兩個方法都inputMethodTextChanged()
也不inputMethodTextChanged()
被稱爲甚至一度:(什麼即時做錯了什麼?caretPositionChanged()方法沒有反應
import java.awt.*;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import javax.swing.*;
public class BrzydkieSlowa extends JFrame {
static String[] slowa = {"shit", "fuck"};
private BrzydkieSlowa(){
//Create and set up the window.
JFrame frame = new JFrame("Brzydkie slowa");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextArea textArea1 = new JTextArea(10,10);
textArea1.addInputMethodListener(new InputMethodListener() {
@Override
public void caretPositionChanged(InputMethodEvent arg0) {
int brzydkie = 0;
int i = 0;
while(brzydkie == 1 || i > 1){
if(textArea1.getText().compareTo(slowa[i])== 0)
brzydkie = 0;
i++;
}
if(brzydkie == 1)
JOptionPane.showMessageDialog(null, "brzydkie slowo");
}
@Override
public void inputMethodTextChanged(InputMethodEvent event) {
// TODO Auto-generated method stub
}
});
frame.getContentPane().add(textArea1, BorderLayout.CENTER);
//Display the window.
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new BrzydkieSlowa();
}
}