Java GUI之JTextArea
来源:互联网 发布:淘宝标志logo 编辑:程序博客网 时间:2024/06/06 05:53
public class JTextAreaDemo { public static void main(String[] args) { JFrame f = new JFrame("留言板"); JTextArea message = new JTextArea(20, 20); f.add(new JLabel("请您留言"), "North"); f.add(message, "Center"); JPanel p = new JPanel(); p.setLayout(new GridLayout(1, 6)); String[] string = { "剪切", "复制", "粘贴", "删除", "提交", "清除" }; String[] buttonActionCommands = { "CUT", "COPY", "PASTE", "DELETE", "SUBMIT", "RESET" }; JButton button[] = new JButton[6]; OuterMonitor om = new OuterMonitor(message, button); for (int i = 0; i < string.length; i++) { button[i] = new JButton(string[i]); button[i].setActionCommand(buttonActionCommands[i]); if (i < 4) { button[i].setEnabled(false); } button[i].addActionListener(om); p.add(button[i]); } message.addMouseMotionListener(om); f.add(p, "North"); f.setSize(400, 150); f.setLocation(300, 100); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}class OuterMonitor extends MouseMotionAdapter implements ActionListener { private JTextArea msg; private JButton buttons[]; private String clipBoard = ""; public OuterMonitor(JTextArea msg, JButton buttons[]) { this.msg = msg; this.buttons = buttons; } public void setClipBoard(String text) { this.clipBoard = text; } public void actionPerformed(ActionEvent e) { int position = msg.getSelectionStart(); String s = e.getActionCommand(); if (s.equals("RESET")) { msg.setText(""); } else if (s.equals("SUBMIT")) { System.out.println("你的留言为:\n" + msg.getText()); } else if (s.equals("COPY")) { clipBoard = msg.getSelectedText(); msg.setSelectionStart(msg.getSelectionEnd()); } else if (s.equals("CUT")) { clipBoard = msg.getSelectedText(); this.delete(); } else if (s.equals("PASTE")) { String content = msg.getText(); String alter = content.substring(0, position) + clipBoard + content.substring(position); msg.setText(alter); } else if (s.equals("DELETE")) { this.delete(); } this.switchButtons(); } public void delete() { int start = msg.getSelectionStart(); int end = msg.getSelectionEnd(); String content = msg.getText(); String alter = content.substring(0, start) + content.substring(end); msg.setText(alter); } public void switchButtons() { boolean cliped = (clipBoard != null) && (clipBoard.length() > 0); buttons[2].setEnabled(cliped); boolean selected = msg.getSelectionEnd() != msg.getSelectionStart(); buttons[0].setEnabled(selected); buttons[1].setEnabled(selected); buttons[3].setEnabled(selected); } public void mouseDragged(MouseEvent m) { this.switchButtons(); }}
阅读全文
0 0
- Java GUI之JTextArea
- Java GUI之文本区JTextArea
- Java GUI之(JRadioButton、JCheckBox、JTextArea)实例
- Java-GUI-JTextArea/JTextField/JTextPane
- [Java GUI] 从JTextArea中解析数字并求和
- [Java GUI] 在JTextArea中显示选定文件的内容
- Java笔记之JTextField JTextArea区别
- Java学习笔记之JTextArea自动滚动到最后一行
- [Java]JTextArea自动换行
- java之GUI
- Java GUI之JButton
- Java GUI之GraphicsEnvironment
- JAVA之GUI
- Java之GUI编程
- java 之GUI
- java基础之GUI
- java基础之GUI
- Java基础之GUI
- SpringBoot微服务的https配置方法(即微信小程序后台服务搭建解决方案)
- 【BZOJ】4326 NOIP2015 运输计划 二分+LCA+树上差分
- 杭电OJ-1285(队伍排名)
- Tensorflow GPU安装错误解决方法
- Java登录认证-基于userId+token-框架flylib-passport
- Java GUI之JTextArea
- MFC VS2013 逐行读取txt,对应显示到编辑框
- 深入理解Java中的容器
- GitHub创建项目和README
- 电子艺术设计语言——Processing介绍和推荐
- python中的字符数字之间的转换函数
- ASP.NET状态管理之七(其他物理数据存放媒体)
- 任务调度线程池
- 淘气鬼事件之事件的三种绑定方式