如何使用鼠标键侦听器最小化和最大化java中的JFrame?
我想在使用“mouseClicked”单击帧时最小化帧,在使用“keyPressed”按下'n'char时最大化帧。这是正在运行的代码,但我认为没有做任何事情如何使用鼠标键侦听器最小化和最大化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
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谢谢你的建议,好的,我会做的,谢谢你的回答,你是对的,我不会将面板添加到框架谢谢。