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