我希望在使用" mouseClicked"点击框架时最小化框架。当我按下' n' char使用" keyPressed"这是代码正在运行,但我认为没有做任何事情。
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);
}
}
感谢您的帮助。
答案 0 :(得分:0)
“我想在使用”mouseClicked“
点击框架时最小化框架
您永远不会将Test panel
添加到框架中。该面板具有鼠标监听器
Test panel=new Test();
frame.add(panel);
“并在使用”keyPressed“按下'n'char时最大化
我认为这是不可能的。一旦框架最小化,应用程序就不再聚焦,并且关键事件将转移到聚焦应用程序或系统。如果需要,Windows-> Tab等系统键可以导航回您的应用程序(在Windows中)。
但也许更好的问题是“你为什么要那样做”?想象一下,您最小化您的应用程序,然后开始处理需要键入的另一个应用程序,并键入“n”。您的其他应用程序将自动打开,当尝试在SO上发布回答问题时会非常烦人。我必须限制我不使用字母n :-)
的答案