如何使用鼠标键侦听器最小化和最大化java中的JFrame?

如何使用鼠标键侦听器最小化和最大化java中的JFrame?,java,swing,jframe,keylistener,mouselistener,Java,Swing,Jframe,Keylistener,Mouselistener,我想在使用“mouseClicked”单击帧时最小化帧,在使用“keyPressed”按下'n'char时最大化帧。这是正在运行的代码,但我认为没有做任何事情 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test extends JPanel implements MouseListener,KeyListener { static JFrame frame = new JFr

我想在使用“mouseClicked”单击帧时最小化帧,在使用“keyPressed”按下'n'char时最大化帧。这是正在运行的代码,但我认为没有做任何事情

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

   }
}
谢谢你的帮助

我想在使用“鼠标单击”单击帧时最小化帧

您从未将
测试面板添加到框架中。该面板具有鼠标侦听器

Test panel=new Test();
frame.add(panel);

当我使用“按键”按下“n”字符时最大化

我认为那是不可能的。一旦帧最小化,应用程序就不再聚焦,关键事件将转移到聚焦的应用程序或系统。如果需要,系统键如Windows->Tab可以将您导航回应用程序(在Windows中)


但也许更好的问题是“你为什么要这么做”?假设您最小化应用程序,然后开始处理另一个需要键入的应用程序,然后键入“n”。你的另一个应用程序将自动打开,这将是超级恼人时,试图张贴答案的问题,所以。对于Swing,我必须将我的答案限制为不使用字母n:-)

,通常在基于AWT的较低级别上使用键绑定,
KeyListener
。有关如何使用它们的详细信息,请参阅。默认情况下,JFrame是不可聚焦的容器,KeyListener需要聚焦,可聚焦的JComponents谢谢你的建议,好的,我会做的,谢谢你的回答,你是对的,我不会将面板添加到框架谢谢。