📄 jtextareaexp.java
字号:
/**
* @(#)JTextAreaExp.java
*
*
* @author
* @version 1.00 2007/11/4
*/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.event.*;
import java.util.*;
class Win extends JFrame implements ActionListener,DocumentListener {
JMenuBar menubar;
JMenu menu;
JSplitPane splitPane;
JTextArea left,right;
JTextField start,end,stra,strb,strc,pos;
JDialog dlg1,dlg2,dlg3;
JLabel stra1,strb1,strc1,start1,end1,pos1;
Box baseBox1,box1,box2,baseBox2,box3,box4,baseBox3,box5,box6;
JMenuItem itemCopy,itemCut,itemPaste,itemInsert,itemReplace,itemAppend,itemSelectAll;
Win(String s) {
super(s);
menubar=new JMenuBar();
menu=new JMenu("编辑");
itemCopy=new JMenuItem("复制");
itemCut=new JMenuItem("剪切");
itemPaste=new JMenuItem("粘贴");
itemInsert=new JMenuItem("插入");
itemReplace=new JMenuItem("替换");
itemAppend=new JMenuItem("追加");
itemSelectAll=new JMenuItem("全选");
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
itemInsert.addActionListener(this);
itemReplace.addActionListener(this);
itemAppend.addActionListener(this);
itemSelectAll.addActionListener(this);
menu.add(itemCopy);
menu.add(itemCut);
menu.add(itemPaste);
menu.add(itemInsert);
menu.add(itemReplace);
menu.add(itemAppend);
menu.add(itemSelectAll);
menubar.add(menu);
setJMenuBar(menubar);
left=new JTextArea(10,30);
right=new JTextArea(10,30);
splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
new JScrollPane(left),new JScrollPane(right));
left.setLineWrap(true);
left.setWrapStyleWord(true);
right.setEditable(false);
(left.getDocument()).addDocumentListener(this);
setLayout(new BorderLayout());
add(splitPane,BorderLayout.CENTER);
start=new JTextField(10);
end=new JTextField(10);
pos=new JTextField(10);
stra=new JTextField(20);
strb=new JTextField(20);
strc=new JTextField(20);
stra1=new JLabel("字符串");
strb1=new JLabel("字符串");
strc1=new JLabel("字符串");
start1=new JLabel("开始位置");
end1=new JLabel("结束位置");
pos1=new JLabel("插入位置");
box1=Box.createVerticalBox();
box1.add(stra1);
box1.add(Box.createVerticalStrut(8));
box1.add(start1);
box1.add(Box.createVerticalStrut(8));
box1.add(end1);
box2=Box.createVerticalBox();
box2.add(stra);
box2.add(Box.createVerticalStrut(8));
box2.add(start);
box2.add(Box.createVerticalStrut(8));
box2.add(end);
baseBox1=Box.createHorizontalBox();
baseBox1.add(box1);
baseBox1.add(Box.createHorizontalStrut(10));
baseBox1.add(box2);
dlg1=new JDialog(this,"文本替换",true);
dlg1.setLayout(new FlowLayout());
dlg1.add(baseBox1);
box3=Box.createVerticalBox();
box3.add(strb1);
box3.add(Box.createVerticalStrut(8));
box3.add(pos1);
box4=Box.createVerticalBox();
box4.add(strb);
box4.add(Box.createVerticalStrut(8));
box4.add(pos);
baseBox2=Box.createHorizontalBox();
baseBox2.add(box3);
baseBox2.add(Box.createHorizontalStrut(10));
baseBox2.add(box4);
dlg2=new JDialog(this,"文本插入",true);
dlg2.setLayout(new FlowLayout());
dlg2.add(baseBox2);
box5=Box.createVerticalBox();
box5.add(strc1);
box6=Box.createVerticalBox();
box6.add(strc);
baseBox3=Box.createHorizontalBox();
baseBox3.add(box5);
baseBox3.add(Box.createHorizontalStrut(10));
baseBox3.add(box6);
dlg3=new JDialog(this,"文本追加",true);
dlg3.setLayout(new FlowLayout());
dlg3.add(baseBox3);
setSize(500,200);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==itemCopy)
left.copy();
else if (e.getSource()==itemCut)
left.cut();
else if (e.getSource()==itemPaste)
left.paste();
else if (e.getSource()==itemInsert)
{
int i=0;
dlg2.setSize(600,100);
dlg2.setVisible(true);
try {
i=Integer.parseInt(pos.getText());
}
catch(NumberFormatException ee){
System.out.println("position error!");
}
left.insert(strb.getText(),i);
}
else if (e.getSource()==itemReplace)
{
int i=0,j=0;
dlg1.setSize(600,300);
dlg1.setVisible(true);
try {
i=Integer.parseInt(start.getText());
}
catch(NumberFormatException ee){
System.out.println("start position error!");
}
try {
j=Integer.parseInt(end.getText());
}
catch(NumberFormatException ee){
System.out.println("start position error!");
}
left.replaceRange(stra.getText(),i,j);
}
else if (e.getSource()==itemAppend)
{
dlg3.setSize(600,100);
dlg3.setVisible(true);
left.append(strc.getText());
}
else if (e.getSource()==itemSelectAll) {
left.selectAll();
}
}
public void changedUpdate(DocumentEvent e) {
if (e.getDocument()==left.getDocument()) {
String s=left.getText();
StringTokenizer fenxi=new StringTokenizer(s,",'\n'");
int n=fenxi.countTokens();
String a[]=new String[n];
for (int i=0; i<=n-1; i++) {
String temp=fenxi.nextToken();
a[i]=temp;
}
Arrays.sort(a);
right.setText(null);
for (int i=0; i<n; i++)
right.append(a[i]+"\n");
}
}
public void removeUpdate(DocumentEvent e) {
changedUpdate(e);
}
public void insertUpdate(DocumentEvent e) {
changedUpdate(e);
}
}
public class JTextAreaExp {
public static void main(String[] args) {
Win mywin=new Win("TextArea Example");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -