使用JToolBa创建工具条---摘自《JAVA疯狂讲义》

来源:互联网 发布:中国人口数据分析 编辑:程序博客网 时间:2024/06/05 17:40

知识点:

1.工具条

2.复制选中的文本

3.替换选中的文本

package codes.c12.part2;


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 java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.io.IOException;


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 {
   JFrame jf = new JFrame("测试工具条 ");
   JTextArea jta = new JTextArea(6, 35);
   JToolBar jtb = new JToolBar();
   JMenuBar jmb = new JMenuBar();
   JMenu edit = new JMenu("编辑");
   // 获得系统剪贴板
   Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
   Action pasteAction = new AbstractAction("粘贴", new ImageIcon(
         "image/ico/paste.png")) {


      /**
             * 
             */
            private static final long serialVersionUID = -1843592500846697311L;


      @Override
      public void actionPerformed(ActionEvent e) {
         if (clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)) {
            try {
               String content = (String) clipboard
                     .getData(DataFlavor.stringFlavor);
               jta.replaceRange(content, jta.getSelectionStart(),
                     jta.getSelectionEnd());
            } catch (UnsupportedFlavorException e1) {
               e1.printStackTrace();
            } catch (IOException e1) {
               e1.printStackTrace();
            }
         }
      }
   };
   // 创建复制Action
   Action copyAction = new AbstractAction("复制", new ImageIcon("image/ico/copy.png")){
      /**
       * 
       */
      private static final long serialVersionUID = 6144031220131927431L;


      public void actionPerformed(ActionEvent e){
         StringSelection contents = new StringSelection(jta.getSelectedText());
         clipboard.setContents(contents, null);
         if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
            pasteAction.setEnabled(true);
         }
      }
   };
   public void init(){
      pasteAction.setEnabled(false);
      jf.add(new JScrollPane(jta));
      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);
      jtb.add(copyAction);
      jtb.addSeparator();
      jtb.add(pasteAction);
      edit.add(copyAction);
      edit.add(pasteAction);
      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);
   }
   


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


}

0 0
原创粉丝点击