首页 > 代码库 > 第12章-Swing编程 --- 使用JToolBar创建工具条
第12章-Swing编程 --- 使用JToolBar创建工具条
第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(); }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。