Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何通过单击箭头键摆脱特定的JPanel?_Java_Swing_Jpanel_Key Bindings_Keylistener - Fatal编程技术网

Java:如何通过单击箭头键摆脱特定的JPanel?

Java:如何通过单击箭头键摆脱特定的JPanel?,java,swing,jpanel,key-bindings,keylistener,Java,Swing,Jpanel,Key Bindings,Keylistener,这是我创建图形文本的内部类。我想能够按下箭头键,让它消失。我肯定它在某种程度上涉及到了移除方法,但我对此一无所知。这方面很新 // STARTUP TEXT class TextPanel extends JPanel implements KeyListener{ // CONSTRUCTOR public TextPanel(){ addKeyListener(this); setFocusable(true); setFo

这是我创建图形文本的内部类。我想能够按下箭头键,让它消失。我肯定它在某种程度上涉及到了移除方法,但我对此一无所知。这方面很新

// STARTUP TEXT

class TextPanel extends JPanel implements KeyListener{

    // CONSTRUCTOR
    public TextPanel(){
        addKeyListener(this);
        setFocusable(true);
        setFocusTraversalKeysEnabled(false);
    }

    // PAINT METHOD
    public void paintComponent(Graphics g2){
        super.paintComponent(g2);
        g2.setColor(Color.WHITE);
        g2.fillRect(0, 0, this.getWidth(), this.getHeight());
        g2.setColor(Color.BLACK);
        g2.setFont(new Font("TimesRoman", Font.PLAIN, 14));
        g2.drawString("Press an arrow key to start", this.getWidth()/4, this.getHeight()/2);
    }

好的,你必须使用响应箭头键然后移除面板(我想是从框架中移除)使用面板的
setVisible(false)
,或者
remove(component)
框架方法。

我想,但是我该怎么做呢?@Jazzertron读到:@HarryJoy:希望我能为此启动一个新的线程。但是请告诉我,AFAIK的缩写代表什么+1用于键绑定内容。:-)Regards@GagandeepBali:据我所知;p@GagandeepBali谷歌也是你的朋友:为了更快地获得更好的帮助,请发布一个.1,虽然通常在Swing中我们不使用KeyEvent,但它们应该与AWT一起使用,但由于这是你提供的一个有价值的信息,这就是为什么:-)问候
/** Handle the key typed event  */
    public void keyTyped(KeyEvent e) {

    }

    /** Handle the key-pressed event  */
    public void keyPressed(KeyEvent e) {

    }

    /** Handle the key-released event  */
    public void keyReleased(KeyEvent e) {
    int key=e.getKeyCode();
        if(key==KeyEvent.VK_LEFT)
        {

            this.setVisible(false);

        }
        if(key==KeyEvent.VK_RIGHT)
        {

            this.setVisible(true);

        }

    }