簡體   English   中英

java keyevent不能按需工作

[英]java keyevent not work as desired

我要在java.so中創建簡單的打字游戲,所以我創建了擴展jpanel的新類wordpanel。一切正常,期望鍵事件。當我按面板的所有第一個jlable的按鍵前景時,應該更改為yellow.but我認識到該行未執行,因為即使我放sout()我也沒有得到輸出。我找不到此代碼的錯誤所在。

public class wordPanel extends JPanel{

    public wordPanel(String word) {

        setOpaque(true);
        char letters[];
        letters = word.toCharArray();
        JLabel lab[]=new JLabel[letters.length];
        setLayout(new GridLayout(1, letters.length));
        for(int i=0;i<letters.length;i++){
            lab[i]=new JLabel(letters[i]+"");
            this.add(lab[i]);
        }

        this.addKeyListener(new java.awt.event.KeyAdapter() {
            @Override
            public void keyPressed(java.awt.event.KeyEvent evt) {
               char ch = evt.getKeyChar();
                   lab[0].setForeground(Color.YELLOW);
                   System.out.println("hey");
            }
        });



    }

} 

這是對象創建塊

        wordPanel wp1=new wordPanel("hello");
        Dimension d = wp1.getPreferredSize();

        wp1.setBounds(rand.nextInt((500 - 5) + 1) + 5, rand.nextInt((300 - 5) + 1) + 5, d.width, d.height);
        jPanel1.add(wp1);
        revalidate();

Swing並不是要使用KeyListeners,而是使用Key Binding可以更好地工作,並且您不必太擔心焦點。 請參閱: http : //docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html

鍵綁定很困難,這是一個教程: http : //www.dreamincode.net/forums/topic/245148-java-key-binding-tutorial-and-demo-program/

我猜想面板頂部的其他組件會收到按鍵事件。 嘗試將此偵聽器添加到其他組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM