我想它打字的東西后JTextField的顏色變爲紅色,再進行第二次返回到默認的白色背景之後。我想這聽者外,和它的工作,但是當談到作爲一個聽者的一部分,它不會(它只是跳過設置紅色)。這是怪異我..兩個設置背景和睡眠線程
public class Test {
JFrame frame;
JTextField field;
public Test() {
frame = new JFrame();
field = new JTextField("A");
field.addKeyListener(new KeyBListener());
frame.getContentPane().add(field);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) { new Test(); }
private class KeyBListener implements KeyListener {
@Override
public void keyTyped(KeyEvent e) {
try {
field.setBackground(Color.RED);
Thread.sleep(1000);
field.setBackground(Color.WHITE);
} catch (InterruptedException es) { es.printStackTrace(); }
}
@Override
public void keyPressed(KeyEvent e) { }
@Override
public void keyReleased(KeyEvent e) { }
}
}
您需要閱讀事件調度線程(EDT)。對於像這樣的更新,他們必須在EDT之外發生,否則,您會阻止重新繪製顯示。 – Speakjava