Java Swing Ribbon(Flamingo)的使用06:添加JComponent组件

之前的文章主要介绍了如何在Flamingo-Ribbon菜单中添加Flamingo的功能组件。其实在Flamingo中还可以添加Swing组件比如复选框、下拉选框、颜色按钮等。这边文章主要介绍的就是如何在Flamingo的Ribbon菜单中添加JComponent组件。


在看这篇文章之前建议先看如下的一些文章。当然如果对Flamino-Ribbon已经有一些基本的了解的则不用看了。

01.关于Flamingo-Ribbon的安装与使用:Flamingo-Ribbon的使用01:安装与初始使用

02.关于Fiamingo-Ribbon界面风格设置:Flamingo-Ribbon的使用02:更改界面风格

03.关于Flamingo-Ribbon按钮样式更改:Flamingo-Ribbon的使用03:按钮中添加图片和更改样式

04.关于Flamingo-Ribbon按钮模式更改:Flamingo-Ribbon的使用04:按钮(JCommandButton)模式更改

05.关于Flamingo-Ribbon小组件的添加:Flamingo-Ribbon的使用05:小组件


在Ribbon中添加JComponent用到的Band不是JRibbonBand,而是JFlowRibbonBand。下面介绍几种组件的添加方式。


1 添加JCombobox组件

在Ribbon中添加一个JCombobox的代码如下:

JFlowRibbonBand flowRibbonBand = new JFlowRibbonBand("FlowRibbon", null);
JComboBox com = new JComboBox();
com.addItem("JComboboxItem1");
com.addItem("JComboboxItem2");
flowRibbonBand.addFlowComponent(com);

运行上述代码结果如下:



2 添加颜色组件

在Swing中,颜色组件的类为JColorChooser,该组件有多个颜色面板,可以通过getChooserPanels()方法取出所有的面板,然后将其中一个面板添加到Band中去:

JColorChooser colorChooser = new JColorChooser();
JComponent[] c = colorChooser.getChooserPanels();

flowRibbonBand.addFlowComponent(c[0]);

运行上述代码结果如下:


修改上述代码,将c[0]该成c[2],可以看到界面如下:

flowRibbonBand.addFlowComponent(c[2]);


3 全部代码

上述完整代码如下:

import java.awt.Dimension;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.pushingpixels.flamingo.api.common.icon.ImageWrapperResizableIcon;
import org.pushingpixels.flamingo.api.common.icon.ResizableIcon;
import org.pushingpixels.flamingo.api.ribbon.JFlowRibbonBand;
import org.pushingpixels.flamingo.api.ribbon.JRibbon;
import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame;
import org.pushingpixels.flamingo.api.ribbon.RibbonTask;


public class MainFrame extends JRibbonFrame {
	static {
		// 设置界面风格:获取系统样式
		try {
			javax.swing.UIManager.setLookAndFeel(
				"org.pushingpixels.substance.api.skin.SubstanceOfficeBlue2007LookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    //根据图片的地址获取该图片,返回ResizableIcon
    public static ResizableIcon getResizableIconFromResource(String resource) {
        return ImageWrapperResizableIcon.getIcon(
                MainFrame.class.getClassLoader().getResource(resource), 
                new Dimension(48, 48));
    }
    public static void main(String[] args) {
    	JFrame.setDefaultLookAndFeelDecorated(true); //windows功能失效
    	JDialog.setDefaultLookAndFeelDecorated(true); //Dialog功能失效
        SwingUtilities.invokeLater(new Runnable() {
            @SuppressWarnings({ "unchecked", "rawtypes" })
            @Override
            public void run() {
                MainFrame frame = new MainFrame();
                frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
                
                JFlowRibbonBand flowRibbonBand = new JFlowRibbonBand("FlowRibbon1", null);
                JFlowRibbonBand flowRibbonBand2 = new JFlowRibbonBand("FlowRibbon2", null);
                
                JComboBox com = new JComboBox();
                com.addItem("JComboboxItem1");
                com.addItem("JComboboxItem2");

                JColorChooser colorChooser = new JColorChooser();
                JComponent[] c = colorChooser.getChooserPanels();

                flowRibbonBand.addFlowComponent(com);
                flowRibbonBand2.addFlowComponent(c[0]);

                
                //新建一个Task,并将Band添加到该Task中去
                RibbonTask task1 = new RibbonTask("One", flowRibbonBand, flowRibbonBand2);
                
                JRibbon ribbon = frame.getRibbon();
                ribbon.addTask(task1);

                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

运行结果如下:



全文完。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值