Java: Как я могу избавиться от определенной JPanel, нажав клавишу со стрелкой? - PullRequest
3 голосов
/ 31 января 2012

Это мой внутренний класс, который создает графический текст. Я хочу иметь возможность нажать клавишу со стрелкой, и она исчезнет. Я уверен, что это как-то связано с методом удаления, но я над головой. Очень новый в этом.

// 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);
    }

Ответы [ 2 ]

4 голосов
/ 31 января 2012

AFAIK. Вы должны использовать Привязки клавиш , чтобы ответить на клавишу со стрелкой, а затем удалить панель (я думаю, из рамки), используя либо setVisible(false) панели, либо remove(component) метод кадра.

2 голосов
/ 31 января 2012
/** 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);

        }

    }
...