如何在Java中最小化/图标化JWindow?

时间:2012-10-18 16:24:04

标签: java swing minimize jwindow

我的应用程序有一个JWindow,需要在单击自定义最小化按钮时将其最小化。 如果有人知道如何最小化JWindow,请回复。我搜索了很多,但找不到任何合适的方法来最小化。 我知道如何最小化JFrame。所以请不要费心回答有关JFrame的问题。 感谢。

2 个答案:

答案 0 :(得分:3)

我知道你不想听到这个,但可怕的事实是,未修饰的jframe(使用setstate方法)和jwindows之间没有太大区别......:)

    JFrame f = new JFrame("Frame");
    f.setUndecorated(true);

答案 1 :(得分:2)

由于JWindow未使用任何控件图标进行修饰,因此未提供setState方法。一种解决方法是允许自定义最小化按钮根据需要设置窗口:

public class JWindowTest extends JFrame {

    JWindow window = new JWindow();
    JButton maxMinButton = new JButton("Minimize Window");

    public JWindowTest() {
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        maxMinButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (window.isVisible()) {
                    maxMinButton.setText("Restore Window");
                } else {
                    maxMinButton.setText("Minimize Window");
                }
                window.setVisible(!window.isVisible());
            }
        });

        add(maxMinButton);

        window.setBounds(30, 30, 300, 220);
        window.setLocationRelativeTo(this);
        window.add(new JLabel("Test JWindow", JLabel.CENTER));
        window.setVisible(true);
    }

    public static void main(String[] args) {
        new JWindowTest().setVisible(true);
    }
}