⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textpad.java

📁 文本编辑器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.util.*; 
import java.text.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.undo.*; 
import javax.swing.text.*; 
class TextPad extends JFrame implements ActionListener 
{ 

JTextArea jta=new JTextArea("本记事本由华南农业大学06软件工程2班杨俊鑫编写,给JAVA初学者练手用,希望大家喜欢!",18,52); 
JCheckBoxMenuItem mto1=new JCheckBoxMenuItem("自动换行",true); 
String ss1=jta.getText(); 
UndoableEditListener ue=new UndoHander(); 
UndoManager undo = new UndoManager(); 
int StartFindPos=0,a=0,b=0; 
GridBagConstraints gbc=new GridBagConstraints(); 
//Dimension dd=new Dimension(); 
// jta.getDocument().addUndoableEditListener(ue); 
public TextPad() 
{ 
//MyMenuListener ml=new MyMenuListener(); 
//JTextArea jta=new JTextArea("This is my textpad",18,52); 

//System.out.println(dd.getHeight()); 
//System.out.println(dd.getWidth()); 

//System.out.println(this.getHeight()); 
//System.out.println(this.getWidth()); 
//System.out.println("OK"); 
this.setTitle("JAVA记事本"); 
this.setLocation(180,100); 
jta.setLineWrap(true); 
jta.setWrapStyleWord(true); 
JPanel jp=new JPanel(); 
JScrollPane jsp=new JScrollPane(jta); 

jp.add(jsp); 
//Rectangle rt=new Rectangle(0,0,this.getWidth(),this.getHeight()); 
//jsp.setBounds(rt); 
//System.out.println(this.getHeight()); 
//System.out.println(this.getWidth()); 
JMenu mf=new JMenu("文件(F)"); 
JMenuItem mtf1=new JMenuItem("新建"); 
mtf1.addActionListener(this); 
JMenuItem mtf2=new JMenuItem("打开"); 
//mtf2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); 
mtf2.addActionListener(this); 
JMenuItem mtf3=new JMenuItem("保存"); 
//mtf3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); 
mtf3.addActionListener(this); 
JMenuItem mtf4=new JMenuItem("另存为"); 
mtf4.addActionListener(this); 
JMenuItem mtf5=new JMenuItem("退出"); 
mtf5.addActionListener(this); 
JMenu me=new JMenu("编辑(E)"); 
JMenuItem mte1=new JMenuItem("撤消"); 
mte1.addActionListener(this); 
jta.getDocument().addUndoableEditListener(ue); 
if(undo.canUndo()) 
{ 
mte1.setEnabled(false); 
} 
JMenuItem mte2=new JMenuItem("剪切"); 
mte2.addActionListener(this); 
JMenuItem mte3=new JMenuItem("复制"); 
mte3.addActionListener(this); 
JMenuItem mte4=new JMenuItem("粘贴"); 
mte4.addActionListener(this); 
//JMenuItem mte5=new JMenuItem("删除"); 
//mte5.addActionListener(this); 
JMenuItem mte6=new JMenuItem("查找"); 
mte6.addActionListener(this); 
//JMenuItem mte7=new JMenuItem("查找下一个"); 
JMenuItem mte8=new JMenuItem("替换"); 
mte8.addActionListener(this); 
//JMenuItem mte9=new JMenuItem("转到"); 
JMenuItem mte10=new JMenuItem("全选"); 
mte10.addActionListener(this); 
JMenuItem mte11=new JMenuItem("日期/时间"); 
mte11.addActionListener(this); 
JMenu mo=new JMenu("格式(O)"); 
//JCheckBoxMenuItem mto1=new JCheckBoxMenuItem("自动换行(W)"); 
mto1.addActionListener(this); 
JMenuItem mto2=new JMenuItem("字体"); 
mto2.addActionListener(this); 
JMenu mv=new JMenu("查看(V)"); 
JMenuItem mtv1=new JMenuItem("状态栏"); 
mtv1.setEnabled(false); 
JMenu mh=new JMenu("帮助(H)"); 
JMenuItem mth1=new JMenuItem("关于记事本"); 
mth1.addActionListener(this); 
JMenuBar mb=new JMenuBar(); 
this.addWindowListener(new WindowAdapter() 
{ 
public void windowClosing(WindowEvent e) 
{ 
System.exit(0); 
} 
} 
); 
mb.add(mf); 
mb.add(me); 
mb.add(mo); 
mb.add(mv); 
mb.add(mh); 
this.setJMenuBar(mb); 
mf.add(mtf1); 
mf.add(mtf2); 
mf.add(mtf3); 
mf.add(mtf4); 
mf.addSeparator(); 
mf.add(mtf5); 
me.add(mte1); 
me.addSeparator(); 
me.add(mte2); 
me.add(mte3); 
me.add(mte4); 
//me.add(mte5); 
me.addSeparator(); 
me.add(mte6); 
//me.add(mte7); 
me.add(mte8); 
//me.add(mte9); 
me.addSeparator(); 
me.add(mte10); 
me.add(mte11); 
mo.add(mto1); 
mo.add(mto2); 
mv.add(mtv1); 
mh.add(mth1); 
this.getContentPane().add(jsp); 
this.setSize(600,400); 
this.setResizable(true); 
this.setVisible(true); 
} 
public void actionPerformed(ActionEvent e) 
{ 

if(e.getActionCommand().equals("打开")) 
{ 
try 
{ 
Frame f=new Frame(); 
FileDialog fd=new FileDialog(f,"打开文件",FileDialog.LOAD); 
fd.setVisible(true); 
String fpath=fd.getDirectory(); 
String fname=fd.getFile(); 
BufferedReader br=new BufferedReader(new FileReader(fpath+fname)); 
jta.setText(""); 
String s=br.readLine(); 
while(s!=null) 
{ 
jta.append(s+"\n"); 
s=br.readLine(); 
} 
br.close(); 
} 
catch(Exception ex) 
{ 
} 
} 

if(e.getActionCommand().equals("保存")) 
{ 
String fns=null; 
Frame f=new Frame("保存"); 
FileDialog fd=new FileDialog(f,"保存文件",FileDialog.SAVE); 
fd.setFile("*.txt"); 
fd.setVisible(true); 
try 
{ 
String savepath=fd.getDirectory(); 
String savename=fd.getFile(); 
if(savename!=null) 
{ 
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename))); 
pw.write(jta.getText(),0,jta.getText().length()); 
pw.flush(); 
} 
} 
catch(Exception esave) 
{ 
} 
} 
if(e.getActionCommand().equals("新建")) 
{ 
jta.setText(""); 
} 
if(e.getActionCommand().equals("另存为")) 
{ 
Frame f=new Frame("保存"); 
FileDialog fd=new FileDialog(f,"文件另存为",FileDialog.SAVE); 
fd.setVisible(true); 
try 
{ 
String savepath=fd.getDirectory(); 
String savename=fd.getFile(); 
if(savename!=null) 
{ 
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename))); 
pw.write(jta.getText(),0,jta.getText().length()); 
pw.flush(); 
} 
} 
catch(Exception esave) 
{ 
} 
} 
if(e.getActionCommand().equals("退出")) 
{ 
String ss2=jta.getText(); 
if(!ss1.equals(ss2)) 
{ 
System.out.println("File is changed."); 
} 
System.exit(0); 
} 
if(e.getActionCommand().equals("撤消")) 
{ 
try 
{ 
undo.undo(); 
//System.out.println(undo.canUndo()); 
} 
catch(Exception eundo) 
{ 
} 
} 
if(e.getActionCommand().equals("剪切")) 
{ 
jta.cut(); 
} 
if(e.getActionCommand().equals("复制")) 
{ 
jta.copy(); 
} 
if(e.getActionCommand().equals("粘贴")) 
{ 
jta.paste(); 
} 
if(e.getActionCommand().equals("删除")) 
{ 

} 
if(e.getActionCommand().equals("全选")) 
{ 
jta.selectAll(); 
} 
if(e.getActionCommand().equals("查找")) 
{ 
try 
{ 
final JDialog jd=new JDialog(this,"查找",true); 
GridBagLayout gbl=new GridBagLayout(); 
GridBagConstraints gbc=new GridBagConstraints(); 
gbc.weightx=0.5; 
gbc.weighty=0.5; 
gbc.gridwidth=1; 
gbc.gridheight=1; 
jd.getContentPane().setLayout(gbl); 
jd.setSize(380,100); 
jd.setResizable(false); 
//jd.setDefaultLookAndFeelDecorated(true); 
final JTextField jtf=new JTextField(15); 
JLabel jlFind=new JLabel("查找内容:"); 
jd.getContentPane().add(jlFind); 
JButton jbFind=new JButton("查找"); 

jbFind.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent efind) 
{ 
String strA=jta.getText(); 
String strB=jtf.getText(); 
if(a>=0) 
{ 
a=strA.indexOf(strB,StartFindPos); 

b=strB.length(); 
StartFindPos=a+b; 
if(a==-1) 
{ 
JOptionPane.showMessageDialog(null, "没有您要查找的信息", "查找结果",1); 
a=0; 
StartFindPos=0; 
} 
jta.select(a,StartFindPos); 
} 
} 
} 
); 
JButton jbCancel=new JButton("取消"); 
jbCancel.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent ejb) 
{ 
jd.dispose(); 
} 
} 
); 
jd.getContentPane().add(jtf); 
jd.getContentPane().add(jbFind); 
jd.getContentPane().add(jbCancel); 
//jd.setResizable(false); 
jd.setLocation(240,200); 
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
jd.setVisible(true); 
} 
catch(Exception efind) 
{ 
} 
} 
if(e.getActionCommand().equals("替换")) 
{ 
final JDialog jd=new JDialog(this,"替换",true); 
GridBagLayout gbl=new GridBagLayout(); 
GridBagConstraints gbc=new GridBagConstraints(); 
gbc.weightx=1; 
gbc.weighty=1; 
gbc.gridwidth=1; 
gbc.gridheight=1; 
JLabel jlFind=new JLabel("查找:"); 
JLabel jp=new JLabel("替换内容:"); 
final JTextField jtf=new JTextField(15); 
final JTextField jtf1=new JTextField(15); 
jd.getContentPane().setLayout(gbl); 
jd.setSize(330,150); 
jd.setResizable(false); 
final JButton jbReplace=new JButton("替换"); 
final JButton jbReplaceAll=new JButton("替换所有"); 
final JButton jbCancel=new JButton("取消"); 
final JButton jbFind=new JButton("查找"); 
gbc.gridx=0; 
gbc.gridy=0; 
jd.getContentPane().add(jlFind,gbc); 
gbc.gridx=1; 
gbc.gridy=0; 
jd.getContentPane().add(jtf1,gbc); 
gbc.gridx=2; 
gbc.gridy=0; 
jd.getContentPane().add(jbFind,gbc); 
gbc.gridx=0; 
gbc.gridy=1; 
jd.getContentPane().add(jp,gbc); 
gbc.gridx=1; 
gbc.gridy=1; 
jd.getContentPane().add(jtf,gbc); 
gbc.gridx=2; 
gbc.gridy=1; 
jd.getContentPane().add(jbReplace,gbc); 
gbc.gridx=2; 
gbc.gridy=2; 
jd.getContentPane().add(jbReplaceAll,gbc); 
gbc.gridx=2; 
gbc.gridy=3; 
jd.getContentPane().add(jbCancel,gbc); 
jbFind.addActionListener(new ActionListener() 
{ 

public void actionPerformed(ActionEvent efind) 
{ 
String strA=jta.getText(); 
String strB=jtf1.getText(); 
if(a>=0) 
{ 
a=strA.indexOf(strB,StartFindPos); 
//System.out.println(a+b); 
b=strB.length(); 
StartFindPos=a+b; 
if(a==-1) 
{ 
JOptionPane.showMessageDialog(null, "没有您要查找的信息", "查找结果",1); 
a=0; 
StartFindPos=0; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -