Duvida KeyListener e KeyEvent

5 respostas
Douglas_Magno

não sei como colocar no meu codígo KeyListener e KeyEvent.

codigo da minha janela
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Janela extends JFrame
{   
    private JMenuBar barra;
    private JTextArea area;
    private JPanel pane;
    private JScrollPane s;
    private JMenu menuArquivo;
    private JMenu menuEditar;
    private JMenuItem itemNovo;
    private JMenuItem itemAbrir;
    private JMenuItem itemSalvar;
     private JMenuItem itemSair;
    private JMenuItem itemRecortar;
    private JMenuItem itemCopiar;
    private JMenuItem itemColar;
    private JMenuItem itemSubstituir;
    private JMenuItem itemLocalizar;
    //public static final int VK_CUT;
    
    public Janela(){
        
        //Cria a barra de menu e os menus que vão ser adicionados a ela
        barra = new JMenuBar();
        menuArquivo = new JMenu("Arquivo");
        menuEditar = new JMenu("Editar");
        
        //metodo para adicionar uma area de texto na janela
        area = new JTextArea(30,60);
        pane = new JPanel();
        Container c = getContentPane();
        c.add(pane, BorderLayout.CENTER);  
        pane.add(area);
        
        //metodo para adicionar barra de rolagem no JTextArea
        s = new JScrollPane(area);
        s.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);   //define a política de utilização da barra de rolagem horizontal
        s.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//define a política de utilização da barra de rolagem vertical
        area.setLineWrap(true);//quebra de linha automática
        //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//serve para encerrar o programa na memoria 
        //pane.add(s);
        add(s);
                
        //cria os itens com seus respectivos nomes, que vão ser adicionados nos menus 
        itemNovo = new JMenuItem("Novo");
        itemAbrir = new JMenuItem("Abrir");
        itemSalvar = new JMenuItem("Salvar");
        itemSair = new JMenuItem("Sair");
        itemRecortar = new JMenuItem("Recortar");
        itemCopiar = new JMenuItem("Copiar");
        itemColar = new JMenuItem("Colar");
        itemSubstituir = new JMenuItem("Substituir");
        itemLocalizar = new JMenuItem("Localizar");
        
       /* void keyReleased(KeyEvent e){
            
            itemCopiar.addKeyListener();
        }*/


        
        //implementação de funcionalidades dos itens do metodo arquivo
        itemSalvar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                
            }
        });                             
        
         itemAbrir.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                   JFileChooser chooser = new JFileChooser();
                   chooser.showOpenDialog(null);
            }
        });
        
         itemNovo.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                area.setText( " " ); // limpa a área de texto
            }
        });
        
        itemSair.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
               System.exit(0);
            }
        });
        //implementação de funcionalidades dos itens do metodo editar
         itemRecortar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                area.cut();
            }
        });
        itemCopiar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                area.copy();
            }
        });
        itemColar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                area.paste();
            }
        });
        
        //adiciona no menu Arquivo os itens abaixo.   
        menuArquivo.add(itemNovo);
        menuArquivo.add(itemAbrir);
        menuArquivo.add(itemSalvar); 
        menuArquivo.add(itemSair);
        
        //adiciona no menu Editar os itens abaixo.
        menuEditar.add(itemRecortar);
        menuEditar.add(itemCopiar);
        menuEditar.add(itemColar);
        menuEditar.add(new JSeparator());
        menuEditar.add(itemSubstituir);
        menuEditar.add(itemLocalizar);
        
        //adiciona a barra de menu os menus Arquivo e o Editar
        barra.add(menuArquivo);
        barra.add(menuEditar);
        
        super.setJMenuBar(barra);
        setSize(900,600);
        setVisible(true);
    }
}

eu procurei mais não achei nem um materia bom, se você tiverem postem aqui.

eu quero que minha janela faça os seguites eventos quando eu apertar as teclas de colar Ctrl + V, recortar Ctrl + X e copiar Ctrl + C, mais ela não esta fazendo, pois eu não soube implementar os Key, se vocês puderem me ajudar fico agradecido.

5 Respostas

renzonuccitelli

A segunda melhor dica que posso dar sobre Swing é usar o SwingBean, framework brasuca muito bom.
A primeira melhor dica é não usar o Swing :twisted:

Douglas_Magno

eu quero que minha janela faça os comandos do teclado recortar, copiar e colar.

como eu faço isso ?

renzonuccitelli

Felizmente não programa mais em Swing há uns 3 anos, então não lembro mais como se faz isso. Me parece que vc está no caminho certo adicionando os Listeners. Hj em dia uso Adobe Air para sistemas desktop e não tenho saudade nenhuma do Swing. O que posso te ajudar é dar um up aki pra ver se alguém no GUJ te ajuda. Sei que o VinnyGodoy é fera em Swing, qq coisa manda uma MP pra ele.

Boa sorte.

Douglas_Magno

obrigado renzonuccitelli.

pessoal a duvida ainda continua em aberto.

se alguem puder me ajudar.

Ironlynx

Douglas, leia esse tópico abaixo:
http://www.guj.com.br/posts/list/198425.java

Criado 21 de outubro de 2010
Ultima resposta 22 de out. de 2010
Respostas 5
Participantes 3