2016-05-24 5 views
2

Je voudrais créer la fenêtre simple où un bouton sera. Lorsque je vais appuyer sur lui est censé être imprimé "test" et quand je vais appuyer sur F5 "F5". Je ne sais pas ce que je fais mal je présente mes excuses pour mon anglais, j'étudie encoreJe ne peux pas utiliser ActionListener et KeyListener en même temps

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

@SuppressWarnings("serial") 
public class Okienko extends JFrame implements ActionListener , KeyListener 
{ 
    static Okienko frame; 

    JButton bTest; 

    public Okienko() 
    { 
     setLayout(null); 
     frame = this; 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.setTitle("test"); 
     frame.setLocation(150, 150); 
     frame.setSize(200, 400); 


     bTest = new JButton("Test"); 
     bTest.setBounds(20, 50, 120, 20); 
     frame.add(bTest); 

     bTest.addActionListener(this); 

     frame.addKeyListener(this); 
     //frame.setFocusable(false); 
     //frame.requestFocus(); 
     requestFocusInWindow(); 
     frame.setVisible(true); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) 
    { 
     Object source = e.getSource(); 

     if (source == bTest) 
     { 
      System.out.println("Test"); 
     } 
    } 

    @Override 
    public void keyPressed(KeyEvent e) 
    { 
     int id = e.getKeyCode(); 

     if (id == KeyEvent.VK_ESCAPE) 
     { 
      this.dispose(); 
     } 

     if (id == KeyEvent.VK_F5) 
     { 
      System.out.println("F5"); 
     } 

    } 

    @Override 
    public void keyReleased(KeyEvent e) 
    { 

    } 

    @Override 
    public void keyTyped(KeyEvent e) 
    { 

    } 
    public static void main(String[] args) 
    { 
     new Okienko(); 
    } 

} 

Répondre