Erro no código

Tenho estudado java bastante, e agora comecei a colocar em prática, e não parece, mas às vezes nos atropelamos com situações simples, mas começar é começar. Fiz esse código e inserir um no meio para detectar a tecla Enter(Key = 13). Essas linhas eu copiei das dicas do osmar silva. O codigo em comentario e em vermelho é que ta dando erro. Podem me dar uma ajuda?
import java.awt.;
import java.awt.event.
;
import javax.swing.*;

[code]public class Estudos extends JFrame{
JTextField texto;
JButton novo;
JButton fecha;
JTextArea textArea;
ImageIcon img;

public Estudos() {
super(“Estudos Swing”);

Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));

img = new ImageIcon("C:/Lixo/MSN.GIF");

// Cria os componentes
texto = new JTextField(10);	
novo = new JButton("Novo");
fecha = new JButton("Fechar",img);
textArea = new JTextArea();

[color=red]/* public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER)
textArea.setText(“Você pressionou Enter”);
else
textArea.setText(“Você não pressionou Enter”);
}*/[/color]
novo.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
“Fui clicado”);
}
}
);
fecha.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
);

c.add(novo);
c.add(fecha);
// alinha o texto à direita
texto.setHorizontalAlignment(JTextField.RIGHT);

// para alinhar à esquerda use JTextField.LEFT
// para alinhar ao centro use JTextField.CENTER    

// Adiciona o JTextField à janela
c.add(texto);  

setSize(350, 250);
setVisible(true);

}

public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}[/code]

Só para constar…
Não dá para colocar cor dentro da tag [ code ]…
Portanto o que tá dando erro está comentado, e não em vermelho… rs

  1. Qual o erro que está dando?

  2. É essa parte que ta dando erro?

public void keyPressed(KeyEvent e){ if(e.getKeyCode() == KeyEvent.VK_ENTER) textArea.setText("Você pressionou Enter"); else textArea.setText("Você não pressionou Enter"); }

Se for, a primeira coisa que eu recomendo é você não utilizar “==”, e sim .equals()
Tente colocar parênteses depois do if, e fechar antes do else, depois abrir no else e fechar no final…

Posta seu erro ae depois…

O keyevent é um int, primitivo. Pode usar == tranquilo.

Com um comando só, não há necessidade de chaves.

Troque esse código:

 public void keyPressed(KeyEvent e){ 
       if(e.getKeyCode() == KeyEvent.VK_ENTER) 
         textArea.setText("Você pressionou Enter");  
       else 
         textArea.setText("Você não pressionou Enter");
 }

Por esse aqui:

this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ? "Você pressionou Enter" : " Você não pressionou enter"); } }

O problema era: como o ViniGodoy mostrou, você deve adicionar um KeyListener (por isso do addKeyListener) na janela.

A classe KeyAdapter é uma classe que implementa KetListener, porém deixando todos os métodos vazios (os métodos que são descritos na interface, nessa implementação não fazem coisa alguma).

Por isso você cria um ‘new KeyAdapter’, sobreescrevendo o método que te interessa (no caso, ketPressed). Dentro dele, você altera o texto de acordo com a condição (no exemplo acima, usando um ‘if ternário’).

Não deu certo conforme o ViniGodoy me disse. Estou tentando aqui.

[quote=ViniGodoy]Troque esse código:

 public void keyPressed(KeyEvent e){ 
       if(e.getKeyCode() == KeyEvent.VK_ENTER) 
         textArea.setText("Você pressionou Enter");  
       else 
         textArea.setText("Você não pressionou Enter");
 }

Por esse aqui:

this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ? "Você pressionou Enter" : " Você não pressionou enter"); } }[/quote]

Oi,

Como assim não funcionou ?? sua variavel textArea nem esta adicionado ao container…

Tchauzin!

Este é meu código atual e não funcionou

[code]import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Estudos extends JFrame{
JTextField texto;
JButton novo;
JButton fecha;
JTextArea textArea;
ImageIcon img;

public Estudos() {
super(“Estudos Swing”);

Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));

img = new ImageIcon("C:/Lixo/MSN.GIF");

// Cria os componentes
texto = new JTextField(10);	
novo = new JButton("Novo");
fecha = new JButton("Fechar",img);
textArea = new JTextArea(5,20);

/* public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER)
textArea.setText(“Você pressionou Enter”);
else
textArea.setText(“Você não pressionou Enter”);
} */

this.addKeyListener(new KeyAdapter() {   
	   public void keyPressed(KeyEvent e){   
	      textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ?   
	            "Você pressionou Enter" : " Você não pressionou enter");   
	   }   
	}

novo.addActionListener(
	      new ActionListener(){
	        public void actionPerformed(ActionEvent e){
	          JOptionPane.showMessageDialog(null, 
	            "Fui clicado");
	        }
	      }
	    );
fecha.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
        	System.exit(0);
        }
      }
    );


c.add(novo);
c.add(fecha);
c.add(textArea);
// alinha o texto à direita
texto.setHorizontalAlignment(JTextField.RIGHT);

// para alinhar à esquerda use JTextField.LEFT
// para alinhar ao centro use JTextField.CENTER    

// Adiciona o JTextField à janela
c.add(texto);  

setSize(350, 250);
setVisible(true);

}

public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}[/code]

Oi,

Então… em primeiro lugar está faltando um ) no código:

this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ? "Você pressionou Enter" : " Você não pressionou enter"); } } );

E acho que você gostaria de adiciona um Key no botão… então seria:

novo.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ? "Você pressionou Enter" : " Você não pressionou enter"); } } );

Tchauzin!

valeu lina, faltou observar mais. Era só o parentesis mesmo e eu nem pra contar os caras e ve se estava faltando. Devo essa ao forum.

hehe…
o forum é tudo…
Já que resolveu, acresente [RESOLVIDO] no assunto do post…
Para fazer isso basta ir ao primeiro post e clicar no botão editar…

[]'s