按鈕我想申請我自己的關閉和最小化按鈕。有沒有辦法改變JFrame
的設計?定製設計,關閉/最小化上的JFrame
回答
訣竅在於PLAF和setDefaultLookAndFeelDecorated(true)
(Specifying Window Decorations)。
E.G.
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();
}
});
}
}
我知道可以做的唯一事情就是將WindowListener
添加到JFrame
並處理該偵聽器中的關閉事件。您幾乎可以做任何事情,例如顯示對話框,甚至取消關閉JFrame
。
請參閱本tutorial有關如何寫出這樣的偵聽器的更多細節。
至於減少:據我所知,目前還沒有辦法控制或改變這種行爲,它是完全由操作系統控制。
改變最小化/關閉/最大化按鈕方面的唯一方法是使用自定義的LookAndFeel和設置JFrame.setDefaultLookAndFeelDecorated (true);
。
我不想改變事件處理程序..我想改變它的圖像,背景,應用程序的主框架佈局? – BDeveloper
更多細節是否有類似模板的作品??! – BDeveloper
認爲你是一個的JWindow
http://docs.oracle.com/javase/7/docs/api/javax/swing/JWindow.html
後,您就可以創建自己的按鈕,其行爲可以最小化/關閉窗口
這意味着所有自定義GUI是JWindows – BDeveloper
沒有,自定義GUI可以是任何你想要,你覆蓋他們,但是你想實現它們並應用自己的樣子,如果你想使用一個JFrame覺得你想怎麼看 – pengibot
你仍然可以使用 JFrame.setDefaultLookAndFeelDecorated(true); 遞歸地擺脫關閉/最小化按鈕等,雖然會多一點工作 – pengibot
- 設置
jframe undecorated
。 - 爲每個按鈕設置一個
jlabel
。 - 把自己的圖標爲每個
Btn
。 - 將
mouseListeners
每個jlabel
和 指定代碼例如,System.exit(0);/set ICONIFIED option
這與LaF's無關。這是一種定製的方式!欲瞭解更多信息,請訪問YouTube上的Vertex數字藝術頻道 – IsmailVawda
- 1. c#最大化,最小化和關閉窗體上的按鈕
- 2. 覆蓋JFrame的最小化
- 3. 製作自定義關閉和最小化按鈕
- 4. 定製關閉,恢復,最小化在WPF C#
- 5. C#自定義關閉,最小化和最大化按鈕
- 6. 如何在Java中隱藏JFrame窗口上的默認最小化/最大化和關閉按鈕?
- 7. JButton最小化窗口(JFrame)
- 8. 關閉JFrame
- 9. 關閉主JFrame
- 10. 「x」最小化WinForm,ContextMenu關閉WinForm?
- 11. 的Android強制關閉時,我想還原最小化通知
- 12. 更改窗口圖標的最小化,關閉並最大化
- 13. 的Windows 10關閉,最小化和最大化按鍵
- 14. 頂部菜單(關閉,最小化,最大化)的Java
- 15. WPF禁用窗口關閉和最小化Tabbing上的按鈕
- 16. Java Swing JFrame最小化/最大化調整大小錯誤
- 17. 功能區控制顯示Windows 2000最小化/最大化/關閉按鈕
- 18. 如何最小化Java的JFrame窗口?
- 19. Java - 顯示最小化的JFrame窗口
- 20. 窗體在關閉,最小化或最大化時掛起
- 21. XAML通過SystemCommands最小化/最大化/關閉按鈕
- 22. Qt隱藏最小化,最大化和關閉按鈕
- 23. Metro UI風格關閉/最小化/最大化按鈕
- 24. JFrame不會關閉
- 25. 當JFrame關閉時
- 26. 關閉JFrame窗口?
- 27. 用JButton關閉JFrame
- 28. JFrame關閉按鈕
- 29. JFrame關閉問題
- 30. 如何關閉JFrame?
有什麼概率... – BDeveloper
覺得你是以後的JWindow http://docs.oracle.com/javase/7/docs/api /javax/swing/JWindow.html – pengibot
thnx安德魯我會做nxt時間.. – BDeveloper