2

自分で閉じるボタンと最小化ボタンを適用したいと思います。JFrameデザインを変更する方法はありますか?

4

4 に答える 4

6

秘訣はPLAFsetDefaultLookAndFeelDecorated(true)窓の装飾の指定)にあります。

例えば

金属 ウィンドウズ

import java.awt.BorderLayout;
import javax.swing.*;

public class FrameCloseButtonsByLookAndFeel {

    FrameCloseButtonsByLookAndFeel() {
        String[] names = {
                UIManager.getSystemLookAndFeelClassName(), 
                UIManager.getCrossPlatformLookAndFeelClassName()
        };
        for (String name : names) {
            try {
                UIManager.setLookAndFeel(name);
            } catch (Exception e) {
                e.printStackTrace();
            }
            // very important to get the window decorations.
            JFrame.setDefaultLookAndFeelDecorated(true);
            JFrame f = new JFrame(UIManager.getLookAndFeel().getName());
            f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

            JPanel gui = new JPanel(new BorderLayout());
            f.setContentPane(gui);

            JTree tree = new JTree();
            tree.setVisibleRowCount(4);
            gui.add(tree, BorderLayout.LINE_START);

            gui.add(new JScrollPane(new JTextArea(3,15)));

            JToolBar toolbar = new JToolBar();
            gui.add(toolbar, BorderLayout.PAGE_START);
            for (int ii=1; ii<5; ii++) {
                toolbar.add(new JButton("Button " + ii));
                if (ii%2==0) {
                    toolbar.addSeparator();
                }
            }

            f.pack();

            f.setLocationByPlatform(true);
            f.setVisible(true);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new FrameCloseButtonsByLookAndFeel();
            }
        });
    }
}
于 2012-06-06T12:33:43.420 に答える
3

あなたはJWindowを追いかけていると思います

http://docs.oracle.com/javase/7/docs/api/javax/swing/JWindow.html

次に、ウィンドウを最小化/閉じることができるアクションを実行できる独自のボタンを作成できます。

于 2012-06-06T11:39:18.723 に答える
2

実行できることを私が知っている唯一のことは、にを追加しWindowListenerJFrameそのリスナーで終了イベントを処理することです。ダイアログを表示したり、の終了をキャンセルしたりするなど、事実上何でも作成できますJFrame

このようなリスナーの作成方法の詳細については、このチュートリアルを参照してください。

最小化に関して:私が知る限り、そのような動作を制御または変更する方法はありません。オペレーティングシステムによって完全に制御されます。

最小化/閉じる/最大化ボタンのアスペクトを変更する唯一の方法は、カスタムのルックアンドフィールと設定を使用することですJFrame.setDefaultLookAndFeelDecorated (true);

于 2012-06-06T11:39:07.857 に答える
0
  1. セットjframe undecorated
  2. jlabelボタンごとにを配置します。
  3. それぞれに独自のアイコンを配置しBtnます。
  4. それぞれmouseListenersに配置jlabelし、コードを指定します。例:System.exit(0);/set ICONIFIED option
于 2013-12-29T12:51:06.317 に答える