本文介绍了JFrame上关闭/最小化按钮的自定义设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想应用自己的关闭和最小化按钮。有没有办法改变 JFrame 设计?
I would like to apply my own close and minimize buttons. Is there any way to change the JFrame design?
推荐答案诀窍位于 PLAF 和 setDefaultLookAndFeelDecorated(true) (指定橱窗装饰) 。
EG
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(); } }); } }
更多推荐
JFrame上关闭/最小化按钮的自定义设计
发布评论