使用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();
}
}
- 使用JToolBa创建工具条---摘自《JAVA疯狂讲义》
- 使用JOptionPane---摘自《JAVA疯狂讲义》
- 使用JSplitPane---摘自《JAVA疯狂讲义》
- 键盘绑定---摘自《JAVA疯狂讲义》
- 为组件设置边框---摘自《JAVA疯狂讲义》
- java疯狂讲义
- 疯狂java讲义codes
- 疯狂Java讲义笔记
- 疯狂JAVA讲义
- 疯狂Java讲义学习
- 疯狂Java讲义笔记
- 《疯狂Java讲义》笔记
- 疯狂JAVA讲义--画圆
- 疯狂JAVA讲义
- 疯狂Java讲义
- 疯狂JAVA讲义-接口
- Java 多线程概述和创建(疯狂java讲义读书笔记)
- 运行失败的 疯狂java讲义示例 使用Annotation示例
- java环境变量
- Halcon基础教程1.3学习笔记
- 使用JDBC时Class.forName()的作用
- 关于删除List中的某些element的方法
- ASP.NET输入文本框自动提示功能
- 使用JToolBa创建工具条---摘自《JAVA疯狂讲义》
- 红薯
- 希尔排序
- 2013 北京云基地白皮书
- ios本地化
- 面试的时候要根据不同的面对人员讲不同的话
- 关于PHP的环境配置问题,最新PHP环境配置方法
- C++编程规范之26:保持重载操作符的自然语义
- hdu 3491 Thieves(最小割)