Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 框架问题_Java_Swing_Jframe_Windowlistener - Fatal编程技术网

Java 框架问题

Java 框架问题,java,swing,jframe,windowlistener,Java,Swing,Jframe,Windowlistener,最小化JFrame时调用什么代码?它是否连接到一个听众?我只想知道当帧最小化时,内部会发生什么 编辑: 我在寻找最小化帧时调用的代码。例如,实际的windowListener的代码。我一直在搜索JFrame,Frame,和Window搜索windowIconified,但找不到实际的代码 原因是,当我的程序运行时,其中一个面板有一个小缺陷,但当我最小化和最大化JFrame时,问题就消失了。我想看看发生了什么,这样我就可以将发生的任何事情应用到我的面板上,使其正确绘制。您想了解有关窗口侦听器和窗口

最小化JFrame时调用什么代码?它是否连接到一个听众?我只想知道当帧最小化时,内部会发生什么

编辑: 我在寻找最小化帧时调用的代码。例如,实际的
windowListener
的代码。我一直在搜索
JFrame
Frame
,和
Window
搜索
windowIconified
,但找不到实际的代码


原因是,当我的程序运行时,其中一个面板有一个小缺陷,但当我最小化和最大化JFrame时,问题就消失了。我想看看发生了什么,这样我就可以将发生的任何事情应用到我的面板上,使其正确绘制。

您想了解有关
窗口侦听器
窗口事件
的信息吗。您正在谈论的事件称为窗口图标化。请在此处阅读更多信息:

编辑:
在出现故障的JPanel上使用
revalidate()
然后使用
repaint()

您想了解有关
WindowListeners
WindowEvents
的信息。您正在谈论的事件称为窗口图标化。请在此处阅读更多信息:

编辑:
在出现故障的JPanel上使用
revalidate()
然后使用
repaint()

您可以使用WindowListener进行监听

比如说

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;

public class WinStateListener implements WindowListener {

    static JFrame window = new JFrame("Window State Listener");

    public WinStateListener() {
        window.setBounds(30, 30, 300, 300);
        window.addWindowListener(this);
        window.setVisible(true);
    }

    public static void main(String[] args) {
        WinStateListener winStateListener = new WinStateListener();
    }

    public void windowClosing(WindowEvent e) {
        System.out.println("Closing");
        window.dispose();
        System.exit(0);
    }

    public void windowOpened(WindowEvent e) {
        System.out.println("Opened");
    }

    public void windowClosed(WindowEvent e) {
        System.out.println("Closed");
    }

    public void windowIconified(WindowEvent e) {
        System.out.println("Iconified");
    }

    public void windowDeiconified(WindowEvent e) {
        System.out.println("Deiconified");
    }

    public void windowActivated(WindowEvent e) {
        System.out.println("Activated");
    }

    public void windowDeactivated(WindowEvent e) {
        System.out.println("Deactivated");
    }
}

您可以使用WindowListener进行监听

比如说

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;

public class WinStateListener implements WindowListener {

    static JFrame window = new JFrame("Window State Listener");

    public WinStateListener() {
        window.setBounds(30, 30, 300, 300);
        window.addWindowListener(this);
        window.setVisible(true);
    }

    public static void main(String[] args) {
        WinStateListener winStateListener = new WinStateListener();
    }

    public void windowClosing(WindowEvent e) {
        System.out.println("Closing");
        window.dispose();
        System.exit(0);
    }

    public void windowOpened(WindowEvent e) {
        System.out.println("Opened");
    }

    public void windowClosed(WindowEvent e) {
        System.out.println("Closed");
    }

    public void windowIconified(WindowEvent e) {
        System.out.println("Iconified");
    }

    public void windowDeiconified(WindowEvent e) {
        System.out.println("Deiconified");
    }

    public void windowActivated(WindowEvent e) {
        System.out.println("Activated");
    }

    public void windowDeactivated(WindowEvent e) {
        System.out.println("Deactivated");
    }
}

最小化JFrame应用程序时,将调用窗口事件
windowIconified
。如果您希望自己处理此类窗口事件,则可以实现
WindowListener
接口或使用
WindowAdapter
抽象类。

最小化JFrame应用程序时,将调用窗口事件
WindowIconnified
。如果您想自己处理此类窗口事件,则可以实现
WindowListener
接口或使用
WindowAdapter
抽象类

最小化
JFrame
时调用什么代码

如“窗口装饰由本机窗口系统提供”中所述,本文将继续描述您可以对主机平台的默认设置进行的一些更改

附录:阅读您的更新,注意恢复图标化窗口会重新绘制它。正如@Andrew Thompson所指出的,您可能需要验证您是否正在构建新的架构。您可能还需要安排一次
repaint()
。一份报告可能会澄清一些事情

最小化
JFrame
时调用什么代码

如“窗口装饰由本机窗口系统提供”中所述,本文将继续描述您可以对主机平台的默认设置进行的一些更改


附录:阅读您的更新,注意恢复图标化窗口会重新绘制它。正如@Andrew Thompson所指出的,您可能需要验证您是否正在构建新的架构。您可能还需要安排一次
repaint()
。一个窗口可能会澄清一些问题。

教程将告诉您所有这些,并以比您在此处找到的更快的速度为您提供正确答案,但您可能正在寻找一个
WindowListener
<如果JFrame最小化,则会调用code>windowIconified。请查看(单击链接)。“当我的程序运行时,其中一个面板有一个小缺陷,但当我最小化和最大化JFrame时,问题就消失了。”1)在EDT上构建GUI。2) 确保在
setVisible(true)
@juser489041之前调用
pack()
:查看处理被图标化然后被取消图标化的JFrame的任何内容(除此之外,此操作会导致JVM重新绘制GUI)会误导您寻找问题的解决方案。不,真正的问题是为什么您的JPanel有一个“缺陷”,要解决这个问题,我们需要查看代码,最好是一个演示该问题的小型可编译可运行程序。还有一两张图片可能会有帮助。问题:你解决了这个问题吗?您是否发现了问题所在?教程将告诉您所有这方面的信息,并以比您在此处找到的更快的速度为您提供正确答案,但您可能正在寻找一个
WindowListener
<如果JFrame最小化,则会调用code>windowIconified。请查看(单击链接)。“当我的程序运行时,其中一个面板有一个小缺陷,但当我最小化和最大化JFrame时,问题就消失了。”1)在EDT上构建GUI。2) 确保在
setVisible(true)
@juser489041之前调用
pack()
:查看处理被图标化然后被取消图标化的JFrame的任何内容(除此之外,此操作会导致JVM重新绘制GUI)会误导您寻找问题的解决方案。不,真正的问题是为什么您的JPanel有一个“缺陷”,要解决这个问题,我们需要查看代码,最好是一个演示该问题的小型可编译可运行程序。还有一两张图片可能会有帮助。问题:你解决了这个问题吗?你知道怎么回事了吗?