[RESOLVIDO] o que tem de errado no KeyPressed?

import java.awt.Color;
import java.awt.event.KeyEvent;


import javax.swing.UIManager;

@SuppressWarnings("serial")
public class painelFrame extends javax.swing.JFrame {
	
	public painelFrame(){
		initComponents();
		this.setLocationRelativeTo(null);
		try {
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (Exception e){
			e.printStackTrace();
		}
		getContentPane().setBackground(Color.BLACK);		
	}
	
	private void painelFrameKeyPressed(java.awt.event.KeyEvent evt){
		if (evt.getKeyCode() == KeyEvent.VK_ESCAPE){
			dispose();
			
		}
	}
	

	
	private void initComponents() {
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		javax.swing.GroupLayout frame = new javax.swing.GroupLayout(getContentPane());
		getContentPane().setLayout(frame);
	    frame.setHorizontalGroup(frame.createParallelGroup
	    		(javax.swing.GroupLayout.Alignment.LEADING)
	    		.addGap(0, 700, Short.MAX_VALUE));
	    
	    frame.setVerticalGroup(frame.createParallelGroup
	    		(javax.swing.GroupLayout.Alignment.LEADING)
	    		.addGap(0, 700, Short.MAX_VALUE));
	    
	    pack();
		
		
	}

	public static void main(String [] args){
		new painelFrame().setVisible(true);
	}

}

está acusando de erro na linha do eventro KeyPressed. o que tem de errado???

obrigado pela atenção!

Olá amigo, tudo blz?

Então cara, compilei o código que tu postou e não deu nenhum erro de sintaxe.

Na verdade o que há de errado é que seu método painelFrameKeyPressed não é chamado em momento algum.
Para vc criar um evento de teclado, primeiro tem que se adicionar um listener a ele. Tenta fazer assim:

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class painelFrame extends javax.swing.JFrame {

    public painelFrame() {

        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception e) {
            e.printStackTrace();
        }        
        
        initComponents();
        this.setLocationRelativeTo(null);
    }

    private void painelFrameKeyPressed(java.awt.event.KeyEvent evt) {
        if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
            dispose();
        }
    }

    private void initComponents() {

        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        javax.swing.GroupLayout frame = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(frame);
        frame.setHorizontalGroup(frame.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                addGap(0, 700, Short.MAX_VALUE));
        frame.setVerticalGroup(frame.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                addGap(0, 700, Short.MAX_VALUE));

        addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                painelFrameKeyPressed(e);
            }
        });

        pack();
    }

    public static void main(String[] args) {
        new painelFrame().setVisible(true);
    }
}

Outra recomendação é alterar o look and feel ANTES da chamada do método initComponents, valew?

Falow cara, espero ter ajudado.
=)

[quote=kleberkruger]Olá amigo, tudo blz?

Então cara, compilei o código que tu postou e não deu nenhum erro de sintaxe.

Na verdade o que há de errado é que seu método painelFrameKeyPressed não é chamado em momento algum.
Para vc criar um evento de teclado, primeiro tem que se adicionar um listener a ele. Tenta fazer assim:

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class painelFrame extends javax.swing.JFrame {

    public painelFrame() {

        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception e) {
            e.printStackTrace();
        }        
        
        initComponents();
        this.setLocationRelativeTo(null);
    }

    private void painelFrameKeyPressed(java.awt.event.KeyEvent evt) {
        if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
            dispose();
        }
    }

    private void initComponents() {

        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        javax.swing.GroupLayout frame = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(frame);
        frame.setHorizontalGroup(frame.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                addGap(0, 700, Short.MAX_VALUE));
        frame.setVerticalGroup(frame.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                addGap(0, 700, Short.MAX_VALUE));

        addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                painelFrameKeyPressed(e);
            }
        });

        pack();
    }

    public static void main(String[] args) {
        new painelFrame().setVisible(true);
    }
}

Outra recomendação é alterar o look and feel ANTES da chamada do método initComponents, valew?

Falow cara, espero ter ajudado.
=)[/quote]

ohhh, vlw cara, agora foi, e obrigado pela recomendação, xD, ainda sou novato!!!

qual é o motivo que é recomendado mudar o look and feel antes do initComponents();???

Na verdade esta recomendação é minha em particular. Num sei se o Java tem algo contra isso, mas eu prefiro alterar o look and feel antes, assim os componentes já são criados “de cara nova”. Quando vc cria os componentes e em seguida altera o look and feel, vc tem que dar um:

SwingUtilities.updateComponentTreeUI(frame); este método atualiza/repinta o frame e faz com que ele ganhe a “cara nova”.

Experimenta fazer uns testes, chame primeiro o método initComponents() e em seguida, altere o look and feel
Vc vai perceber que a aplicação ainda ficará com a cara do tema antigo.

Depois repita o mesmo teste adicionando na linha abaixo do método UIManager.setLookAndFeel() o método que eu citei acima.
Repare que aí sim ele vai repintar o frame com o novo look and feel

try {
     UIManager.setLookAndFeel(new WindowsLookAndFeel());
     SwingUtilities.updateComponentTreeUI(this);
} catch (UnsupportedLookAndFeelException ex) {
     System.out.println("Xii! deu pau");
}

opa, fiz o teste, meu deu pra perceber a diferença, xD, vlw pela dica!!!

Já vi vários livros de Swing que também não recomendam.

Entretanto, o tutorial da Sun explica com o uso do updateTreeUI:
http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html