第12章-Swing编程 --- 使用JToolBar创建工具条

Swing提供了JToolBar类来创建工具条,创建JToolBar对象时可以指定如下两个参数:

-->name: 该参数指定该工具条的名称.

-->orientation:该参数指定该工具条的方法.

JToolBar对象还有如下几个常用方法:

-->JButton add(Action a): 通过Action对象为JToolBar添加对应的工具按钮.

-->void addSeparator(Dimension size):向工具条中添加指定大小的分隔符.

-->void setFloatable(boolean b):设置该工具条是否可浮动,即该工具条是否可以拖动.

-->void setMargin(Insets m):设置工具条边框和工具按钮之间的页边距.

-->void setOrientation(int o):设置工具条的方向.

-->void setRollover(boolean rollover):设置此工具条的rollover状态.

下面程序举例:

import java.awt.BorderLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class JToolBarTest
{
    private JFrame jf = new JFrame("测试工具条");
    private JTextArea jta = new JTextArea(6,35);
    private JToolBar jtb = new JToolBar();
    private JMenuBar jmb = new JMenuBar();
    private JMenu edit = new JMenu("编辑");

    //获取系统剪贴板
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

    //创建 "粘贴" Action,该Action用于创建菜单项、工具按钮和普通按钮
    Action pasteAction = new AbstractAction("粘贴",new ImageIcon("ico/paste.png")){
        public void actionPerformed(java.awt.event.ActionEvent e)
        {
            //如果剪贴板中包含 stringFlavor内容
            if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor))
            {
                try
                {
                    //取出剪贴板中的stringFlavor内容
                    String content = (String)clipboard.getData(DataFlavor.stringFlavor);

                    //将选中的内容替换成剪贴板中的内容
                    jta.replaceRange(content, jta.getSelectionStart(), jta.getSelectionEnd());
                }
                catch(Exception ee)
                {
                    ee.printStackTrace();
                }
            }
        };
    };

    //创建"复制"Action
    Action copyAction = new AbstractAction("复制",new ImageIcon("ico/copy.png")){
        public void actionPerformed(java.awt.event.ActionEvent e)
        {
            StringSelection contents = new StringSelection(jta.getSelectedText());
            //将StringSelection对象放入剪贴板中
            clipboard.setContents(contents, null);
            //如果剪贴板中包含stringFlavor内容
            if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor))
            {
                //将pasteAction激活
                pasteAction.setEnabled(true);
            }
        };
    };

    public void init()
    {
        //pasteAction默认处于不激活状态
        pasteAction.setEnabled(false);
        jf.add(new JScrollPane(jta));

        //以Action创建按钮,并将该按钮添加到Panel中
        JButton copyBn = new JButton(copyAction);
        JButton pasteBn = new JButton(pasteAction);
        JPanel jp = new JPanel();
        jp.add(copyBn);
        jp.add(pasteBn);
        jf.add(jp,BorderLayout.SOUTH);

        //向工具条中添加Action对象,该对象将会转换成工具按钮
        jtb.add(copyAction);
        jtb.addSeparator();
        jtb.add(pasteAction);
        //向菜单中添加Action对象,该对象将会转换成菜单项
        edit.add(copyAction);
        edit.add(pasteAction);
        //将edit菜单添加到菜单条中
        jmb.add(edit);
        jf.setJMenuBar(jmb);

        //设置工具条和工具按钮之间的页边距
        jtb.setMargin(new Insets(20,10,5,30));
        //向窗口中添加工具条
        jf.add(jtb,BorderLayout.NORTH);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.pack();
        jf.setVisible(true);
    }

    public static void main(String[] args)
    {
        new JToolBarTest().init();
    }
}

第12章-Swing编程 --- 使用JToolBar创建工具条,布布扣,bubuko.com

时间: 2024-10-25 01:31:17

第12章-Swing编程 --- 使用JToolBar创建工具条的相关文章

第12章-Swing编程 --- 使用JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条

第12章-Swing编程 --- 使用JProgressBar.ProgressMonitor和BoundedRangeModel创建进度条 (一)创建进度条 使用JProgressBar,可以很方便的创建进度条,其步骤如下: (1)创建一个JProgressBar对象,创建该对象时也可以指定3个参数,用于设置进度条的排列方向(竖直和水平).进度条的最大值和最小值.也可以在创建该对象时不传入任何参数,而是在后面程序中修改这3个属性. 下面代码创建了JProgressBar对象 //创建一条垂直进

第12章-Swing编程 --- Swing概述

(一)Swing概述 将Swing组件按功能来分: ->顶层容器: JFrame.JApplet.JDialog和JWindow ->中间容器: JPanel.JScrollPane.JSplitPane.JToolBar等 ->特殊容器:在用户界面上具有特殊作用的中间容器,如JInternalFrame.JRootPane.JLayeredPane和JDestopPane等 ->基本组件:实现人机交互的组件,如JButton.JComboBox.JList.JMenu.JSlid

第12章Swing编程

第12章Swing编程 Swing它采用100%java实现 不在依赖本地平台,所有平台都可以保持相同的运行效果,对跨平台支持比较出色  实现了MVC设计模式也称为Model-Delegate(模式-代理) 12.1 Swing概况 独立于本地平台的Swing(速度慢点)组件被称为轻量级组件,而依赖本地平台的AWT组件被称为重量级组件 12.2 Swing 基本组件的用法 12.2.1 Swing 组件层次 大部分Swing组件都是JComponent抽象类的直接或者间接子类,JComponen

第12章-Swing编程 --- Swing中的特殊容器--JSplitPane

(一)使用JSplitPane JSplitPane用于创建一个分割板,它可以将一个组件(通常是一个容器)分割成两个部分,并提供一个分割条.用户可以拖动该分隔条来调整两个部分的大小.分隔面板的实质是一个特殊容器,该容器只能容纳两个组件,而且分割面板又分为上下分割.左右分割两种情形. 创建分割面板的代码如下: new JSplitPane(方向,左/上组件,右/下组件); JSplitPane分割面板提供了如下几个方法: (1)setDividerLocation(double proportio

第12章-Swing编程 --- 使用JOptionPane

通过使用JOptionPane可以非常方便的创建一些简单的对话框. JOptionPane提供了如下3个方法来创建对话框: (1)showMessageDialog/showInternalMessageDialog:消息对话框,告知用户某事已发生,用户只能单击"确认"按钮. (2)showConfirmDialog/showInternalMessageDialog:确认对话框,向用户确认某个问题,用户可以选择 yes.no.cancel等选项. (3)showInputDialog

第12章-Swing编程 --- 使用JFileChooser和Java7增强的JColorChooser

JColorChooser用于创建颜色选择器对话框,该类的用法非常简单,该类主要提供了如下两个静态方法: -->showDialog(Component component,String title,Color initialColor):显示一个模式的颜色选择器对话框,该方法返回用户所选的颜色.其中component指定该对话框的parent组件,而title指定该对话框的标题. -->createDialog(Component c,String title,boolean modal,J

第12章 Swing编程

12.1 Swing概述 12.2 Swing基本组件的用法 12.2.1 java 7的Swing组件层次 12.2.2 AWT组件的Swing实现 12.2.3 为组件设置边框 12.2.4 Swing组件的双缓存和键盘驱动 12.2.5 使用JToolBar创建工具条 12.2.6 使用JFileChooser和java 7增强的JColorChooser 12.2.7 使用JOptionPane 12.3 Swing中的特殊容器 12.3.1 使用JSplitPane 12.3.2 使用

疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程java任务timerstring 2009-01-16 21:12 6722人阅读 评论(0) 收藏 举报  分类: J2SE(63)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天讲了Swing基本的控件,今天开始讲特殊控件.一天讲2个吧,首先讲用JProgressBar,Pro

积累的VC编程小技巧之工具条和状态条

1.工具条和状态条中控件的添加: 方法⑴.只能在ToolBar里创建控件:首先,在ToolBar中创建一个Button,其ID为ID_TOOL_COMBO(我们要将创建的控件放在该Button的位置上). 其次,新创建一个类CMainToolBar,要从CToolBar继承(创建过程大概如下:选择工程/增加到工程/新的类:也可以选择工程的根,然后点击右键,选择新的类:或者CTL+W,选择增加类/新的类 --- 然后在class type里选择Generic Class,在Name栏里输入新类的名