java - 顶部菜单(关闭、最小化、最大化)Java

标签 java swing menu toolbar look-and-feel

如何更改工具栏、顶部菜单(用于关闭、最小化、最大化的按钮)的外观和感觉

是否可以喜欢一些改变? (添加、删除按钮,指定背景) 创建它需要导入什么?

最佳答案

您可以设置 JButton 的背景图片你可以看看这个:Swing Tutorial: JButton其中显示了 new JButton(String text,ImageIcon imgIco) 的使用创建 JButtonImageIconString

要设置背景和文本的颜色,您可以使用 setBackground(Color c)setForeground(Color c)

或者,只需通过设置适当的支持 Look and Feel 来自定义外观和感觉配色方案然后change the color scheme/size etc of its components您可以为每个组件更改数百项内容,请参阅 this为了他们所有人。

自定义退出最小化最大化工具栏按钮,也可以使用外观和感觉(Custom design for Close/Minimize buttons on JFrame):

Metal Windows

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();
            }
        });
    }
}

关于java - 顶部菜单(关闭、最小化、最大化)Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905598/

相关文章:

java - 使用在接口(interface)中声明的方法,而不是在类中声明的方法

Java Swing 。前面的 Windows 从 JDialog 启动

html - 停止菜单移动

python-2.7 - 如何为不同的 Tkinter [子] 菜单执行不同的回调?

java - 一个正则表达式可以(有效地)统治所有这些?

java - jdbc 连接已建立,但未在 eclipse 控制台中打印结果

java - 如何将 JTable Vector 转换为 JTable ArrayList?

asp.net MVC 数据库驱动的导航菜单

java - 如何设置日期格式以插入 Elasticsearch

java - 从 JComboBox 显示 JTable