我想创建一个简单的窗口,其中一个按钮将是。 当我按下他时应该打印出“测试”,当我按下F5“F5”时。 我不知道我做得很糟糕 我为我的英语道歉,我还在学习
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();
}
}
答案 0 :(得分:0)
例如,您可以通过调用组件上的setFocusable(true)方法为组件启用键盘焦点。 添加构造函数:
setFocusable(true);
此处有更多信息:https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html
答案 1 :(得分:0)
添加
btest.setFocusable(false);