2016-05-24 72 views
2

我想創建一個簡單的窗口,其中一個按鈕將是。 當我按他應該打印出「測試」,當我按F5「F5」。 我不知道我在做什麼不好 我很抱歉,我的英語我還在研究我不能在同一時間使用ActionListener和KeyListener

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

} 

回答

相關問題