簡體   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