繁体   English   中英

如何使用鼠标和按键监听器在Java中最小化和最大化JFrame?

[英]how to minimize and maximize JFrame in java using mouse and key Listener?

我想在使用“ 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);

   }
}

感谢您的帮助。

“当我使用“ mouseClicked”点击框架时,我想最小化框架

您永远不会将“ Test panel添加到框架。 面板上有鼠标监听器

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

“并在我使用“ keyPressed”按下'n'char时最大化

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

但是也许更好的问题是“为什么要这么做” 想象一下,您最小化了您的应用程序,然后开始在需要输入的其他应用程序上工作,然后输入“ n”。 您的其他应用程序将自动打开,这在尝试发布关于SO的问题时会非常烦人。 我必须将答案限制为不使用字母n :-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM