【发布时间】:2014-04-16 13:16:01
【问题描述】:
我想在使用“mouseClicked”单击框架时最小化框架,并在使用“keyPressed”按下“n”字符时最大化,这是代码正在运行,但我认为没有做任何事情。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JPanel implements MouseListener,KeyListener {
static JFrame frame = new JFrame("java lover");
public Test() {
super();
this.addMouseListener(this);
this.addKeyListener(this);
}
//************************************************************************************
public void mouseClicked(MouseEvent e){
frame.setState(Frame.ICONIFIED); // to minimize frame
}
//************************************************************************************
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
//*************key*********************************
public void keyTyped(KeyEvent e) {
}
//*************key*********************************************************************
public void keyPressed(KeyEvent e) {
if(e.getKeyChar()=='n'){
frame.setState ( Frame.NORMAL );// for maximize or normal frame
}
}
//*************key**********************************************************************
public void keyReleased(KeyEvent e) {
}
//**************************************************
public static void main(String[] args) {
Test panel=new Test();
frame.setSize(600, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
感谢您的帮助。
【问题讨论】:
-
对于 Swing,通常在基于 AWT 的较低级别
KeyListener上使用键绑定。有关如何使用它们的详细信息,请参阅How to Use Key Bindings。 -
而 JFrame 默认是不可聚焦的容器,需要 KeyListener 焦点,可聚焦的 JComponents
标签: java swing jframe keylistener mouselistener