自分で閉じるボタンと最小化ボタンを適用したいと思います。JFrame
デザインを変更する方法はありますか?
質問する
8868 次
4 に答える
6
秘訣はPLAFとsetDefaultLookAndFeelDecorated(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
実行できることを私が知っている唯一のことは、にを追加しWindowListener
、JFrame
そのリスナーで終了イベントを処理することです。ダイアログを表示したり、の終了をキャンセルしたりするなど、事実上何でも作成できますJFrame
。
このようなリスナーの作成方法の詳細については、このチュートリアルを参照してください。
最小化に関して:私が知る限り、そのような動作を制御または変更する方法はありません。オペレーティングシステムによって完全に制御されます。
最小化/閉じる/最大化ボタンのアスペクトを変更する唯一の方法は、カスタムのルックアンドフィールと設定を使用することですJFrame.setDefaultLookAndFeelDecorated (true);
。
于 2012-06-06T11:39:07.857 に答える
0
- セット
jframe undecorated
。 jlabel
ボタンごとにを配置します。- それぞれに独自のアイコンを配置し
Btn
ます。 - それぞれ
mouseListeners
に配置jlabel
し、コードを指定します。例:System.exit(0);/set ICONIFIED option
于 2013-12-29T12:51:06.317 に答える