您的位置:首页 > 编程语言 > Java开发

Java Swing Ribbon(Flamingo)的使用05:小组件

2014-11-07 17:27 1146 查看
这篇文章将简单介绍一下Ribbon中常用的控件空间小组件的使用,包括:设置左上角圆形菜单图标、设置左上角快捷工具条、设置右上角帮助按钮等。

在看这篇文章之前建议先看如下的一些文章。当然如果对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)模式更改

1、设置左上角圆形菜单图标

Office 2007中在软件的左上角可以添加圆形按钮菜单,在Flamingo-Ribbon中也可以添加同样的圆形菜单按钮。

代码如下:

// 设置左上角圆图标
private void setApplicationMenu(JRibbon ribbon) {
RibbonApplicationMenu ram = new RibbonApplicationMenu();
ribbon.setApplicationMenu(ram); // 左上角的圆图标
}


2、设置左上角快捷工具条

Office 2007中在软件的左上角可以设置常用的按钮的快捷方式,比如复制、回退、格式刷等,在Flamingo-Ribbon中也可以添加同样的快捷按钮。

代码如下:

//左上角的工具条
private void setTaskbarComponent(JRibbon ribbon) {
JCommandButton button1 = new JCommandButton("打开");
JCommandButton button2 = new JCommandButton("复制");
JCommandButton button3 = new JCommandButton("格式化");

//		button1.addActionListener(actionListener1);
//		button2.addActionListener(actionListener2);
//		button3.addActionListener(actionListener3);

attachImage(button1, "resources/AddFile.png");
attachImage(button2, "resources/SetEnvironment.png");
attachImage(button3, "resources/RunAgent.png");

ribbon.addTaskbarComponent(button1);
ribbon.addTaskbarComponent(button2);
ribbon.addTaskbarComponent(button3);
}


3、设置右上角帮助按钮

在很多桌面软件中,会在右上角放置一个帮组按钮,点击该按钮就可以弹出对该软件的帮助说明。在 Flamingo-Ribbon中也可以添加该按钮。其代码如下:

//配置帮助按钮
private void configureHelp(JRibbon ribbon) {
    ribbon.configureHelp(getResizableIconFromResource(
            "resources/Help.png"), new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(null, "Help");
        }
    });
}


上述所有代码的完整形式如下:

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;

import org.pushingpixels.flamingo.api.common.JCommandButton;
import org.pushingpixels.flamingo.api.common.icon.ImageWrapperResizableIcon;
import org.pushingpixels.flamingo.api.common.icon.ResizableIcon;
import org.pushingpixels.flamingo.api.ribbon.JRibbon;
import org.pushingpixels.flamingo.api.ribbon.JRibbonBand;
import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame;
import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenu;
import org.pushingpixels.flamingo.api.ribbon.RibbonElementPriority;
import org.pushingpixels.flamingo.api.ribbon.RibbonTask;
import org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies;
import org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy;

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

JRibbonBand band = new JRibbonBand("文件", null); //新建一个Band

band.setResizePolicies((List) Arrays.asList(
new CoreRibbonResizePolicies.None(band.getControlPanel()),
new IconRibbonBandResizePolicy(band.getControlPanel())));

JCommandButton button1 = new JCommandButton("Square",
getResizableIconFromResource("resources/Project.png"));
JCommandButton button2 = new JCommandButton("Circle",
getResizableIconFromResource("resources/Clear.png"));
JCommandButton button3 = new JCommandButton("Triangle",
getResizableIconFromResource("resources/ZoomOut.png"));
JCommandButton button4 = new JCommandButton("Star",
getResizableIconFromResource("resources/ZoomIn.png"));
band.addCommandButton(button1, RibbonElementPriority.TOP);
band.addCommandButton(button2, RibbonElementPriority.MEDIUM);
band.addCommandButton(button3, RibbonElementPriority.MEDIUM);
band.addCommandButton(button4, RibbonElementPriority.MEDIUM);

//新建一个Task,并将Band添加到该Task中去
RibbonTask task1 = new RibbonTask("One", band);

JRibbon ribbon = frame.getRibbon();
ribbon.addTask(task1);

frame.setApplicationMenu(ribbon); //左上角圆图标
frame.setTaskbarComponent(ribbon); //左上角的工具条
frame.configureHelp(ribbon); //右上角的帮助按钮

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

//左上角的工具条
private void setTaskbarComponent(JRibbon ribbon) {
JCommandButton button1 = new JCommandButton("打开");
JCommandButton button2 = new JCommandButton("复制");
JCommandButton button3 = new JCommandButton("格式化");

// button1.addActionListener(actionListener1);
// button2.addActionListener(actionListener2);
// button3.addActionListener(actionListener3);

attachImage(button1, "cn/edu/njnu/resources/AddFile.png");
attachImage(button2, "cn/edu/njnu/resources/SetEnvironment.png");
attachImage(button3, "cn/edu/njnu/resources/RunAgent.png");

ribbon.addTaskbarComponent(button1);
ribbon.addTaskbarComponent(button2);
ribbon.addTaskbarComponent(button3);
}

private void attachImage(JCommandButton btn, String key) {
btn.setIcon(getResizableIconFromResource(key));
}

//配置帮助按钮
private void configureHelp(JRibbon ribbon) {
ribbon.configureHelp(getResizableIconFromResource(
"resources/Help.png"), new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Help");
}
});
}

// 设置左上角圆图标 private void setApplicationMenu(JRibbon ribbon) { RibbonApplicationMenu ram = new RibbonApplicationMenu(); ribbon.setApplicationMenu(ram); // 左上角的圆图标 }
}


运行上述代码结果如下:



从上图可以看到:

1、在左上角多了一个圆形菜单图标,在这个菜单中可以自行添加自己想要的功能;

2、在圆形菜单的旁边多了三个快捷按钮,可以自行添加按钮的个数和按钮的触发事件;

3、在右上角脱了一个帮助按钮。

全文完。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息