Java如何以编程方式更改JFrame状态?

在以下代码片段中,您将学习如何JFrame在Swing应用程序中以编程方式更改组件的框架状态。该JFrame状态表示为逐位掩码。您可以JFrame使用该JFrame.setExtendedState()方法最小化,最大化或使状态恢复正常。

您可以将以下值作为参数传递给方法:

  • Frame.NORMAL

  • Frame.ICONIFIED

  • Frame.MAXIMIZED_HORIZ

  • Frame.MAXIMIZED_VERT

  • Frame.MAXIMIZED_BOTH

package org.nhooo.example.swing;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class SwingFrameState extends JFrame {

    public SwingFrameState() throws HeadlessException {

        initUI();

    }

    private void initUI() {

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        setLayout(new FlowLayout());

        final JButton minimize = new JButton("Minimize");

        final JButton maximize = new JButton("Maximize");

        final JButton normal = new JButton("Normal");

        add(normal);

        add(minimize);

        add(maximize);

        pack();

        setSize(500, 200);

        ActionListener listener = new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                if (e.getSource() == normal) {

                    setExtendedState(Frame.NORMAL);

                } else if (e.getSource() == minimize) {

                    setExtendedState(Frame.ICONIFIED);

                } else if (e.getSource() == maximize) {

                    setExtendedState(Frame.MAXIMIZED_BOTH);

                }

            }

        };

        minimize.addActionListener(listener);

        maximize.addActionListener(listener);

        normal.addActionListener(listener);

    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override

            public void run() {

                new SwingFrameState().setVisible(true);

            }

        });

    }

}

上面的代码片段的输出屏幕截图为:

以上是 Java如何以编程方式更改JFrame状态? 的全部内容, 来源链接: utcz.com/z/334613.html

回到顶部