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

📄 mytexteditor.java

📁 java的记事本
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.io.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import java.net.*; 
public class MyTextEditor extends JFrame 
{ 
public boolean changed; //控制文本域内文字是否改变情况。 
public JTextArea jta=new JTextArea(); 
public JScrollPane jsp=new JScrollPane(); 
public JMenuBar jmb; 
public JMenu jm; 
public JMenu editjm; 
public JMenu setjm; 
public JMenu helpjm; 
public JMenuItem newjmi,openjmi,savejmi,saveasjmi,exitjmi; 
public JSeparator js1=new JSeparator(); 
public JSeparator js2=new JSeparator(); 
public ActionListener al=new A(); 
public String fileName=""; //定义保存的文件名 
public JMenuItem copyjmi,pastejmi,cutjmi,findjmi; 
public JMenuItem fjmi,bjmi; 
public JMenuItem aboutjmi; 
public JSeparator js3=new JSeparator(); 
public JToolBar jtb; 
public String quick[]=new String[]{"new","open","save","saveas","copy","paste","cut"}; 
public MyTextEditor() 
{ 
this.setTitle("小小记事本"); 
this.setSize(new Dimension(400,400)); 
jta.getDocument().addDocumentListener(new DocumentListener() 
{ 
public void insertUpdate(DocumentEvent e) 
{ 
changed=true; 
} 
public void removeUpdate(DocumentEvent e) 
{ 
changed=true; 
} 
public void changedUpdate(DocumentEvent e) 
{ 
changed=true; 
} 
}); //注册文档变化的监听。 
jta.setBackground(Color.pink); 
jta.setForeground(Color.blue); 
jta.setFont(new Font("Fixedsys",Font.PLAIN,13)); 
jsp.setViewportView(jta);//相当与:JScrollPane jsp=new JScrollPane(jta); 
this.getContentPane().add(jsp,BorderLayout.CENTER); 
this.initComponent(); 
this.setJMenuBar(jmb); 
this.addWindowListener(new WindowAdapter() 
{ 
public void windowClosing(WindowEvent e) 
{ 
if(changed==true) 
{ 
int n; 
Object[] option={"是","否"}; 
n=JOptionPane.showOptionDialog(null, 
"你的文件还没有保存呢,你想现在保存吗?", 
"保存", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
option, 
option[0]); 
switch(n) 
{ 
case JOptionPane.YES_OPTION: 
doSave(fileName); 
break; 
case JOptionPane.NO_OPTION: 
break; 
default: break; 
} 
} 
System.exit(0); 
} 
}); 
} 
public void initComponent() 
{ 
jmb=new JMenuBar(); 
jm=new JMenu(); 
editjm=new JMenu(); 
newjmi=new JMenuItem(); 
openjmi=new JMenuItem(); 
savejmi=new JMenuItem(); 
saveasjmi=new JMenuItem(); 
exitjmi=new JMenuItem(); 
js1=new JSeparator(); 
js2=new JSeparator(); 
jm.setMnemonic(KeyEvent.VK_F);//定义加速键 
jm.setText("文件"); 
newjmi.setMnemonic(KeyEvent.VK_N); 
newjmi.setText("新建"); 
newjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); 
newjmi.addActionListener(al); 
jm.add(newjmi); 
jm.add(js1);//or:jm.addSeparator(); 
openjmi.setMnemonic(KeyEvent.VK_O); 
openjmi.setText("打开"); 
openjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); 
openjmi.addActionListener(al); 
jm.add(openjmi); 
savejmi.setMnemonic(KeyEvent.VK_S); 
savejmi.setText("保存"); 
savejmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); 
savejmi.addActionListener(al); 
jm.add(savejmi); 
saveasjmi.setMnemonic(KeyEvent.VK_A); 
saveasjmi.setText("另存为"); 
saveasjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); 
saveasjmi.addActionListener(al); 
jm.add(saveasjmi); 
jm.add(js2); 
exitjmi.setMnemonic(KeyEvent.VK_X); 
exitjmi.setText("退出"); 
exitjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); 
exitjmi.addActionListener(al); 
jm.add(exitjmi); 
//文件菜单设置结束。 
editjm.setText("编辑"); 
editjm.setMnemonic(KeyEvent.VK_E); 
copyjmi=new JMenuItem(); 
pastejmi=new JMenuItem(); 
findjmi=new JMenuItem(); 
cutjmi=new JMenuItem(); 
copyjmi.setText("复制"); 
copyjmi.setMnemonic(KeyEvent.VK_C); 
copyjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); 
copyjmi.addActionListener(al); 
editjm.add(copyjmi); 
pastejmi.setText("粘贴"); 
pastejmi.setMnemonic(KeyEvent.VK_P); 
pastejmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK)); 
pastejmi.addActionListener(al); 
editjm.add(pastejmi); 
cutjmi.setText("剪贴"); 
cutjmi.setMnemonic(KeyEvent.VK_X); 
cutjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); 
cutjmi.addActionListener(al); 
editjm.add(cutjmi); 
editjm.add(js3); //or:editjm.addSeparator(); 
findjmi.setText("查找"); 
findjmi.setMnemonic(KeyEvent.VK_F); 
findjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK)); 
findjmi.addActionListener(al); 
editjm.add(findjmi); 
setjm=new JMenu(); 
setjm.setText("设置"); 
setjm.setMnemonic(KeyEvent.VK_S); 
fjmi=new JMenuItem(); 
fjmi.setText("字体颜色..."); 
fjmi.setMnemonic(KeyEvent.VK_F); 
fjmi.addActionListener(al); 
bjmi=new JMenuItem(); 
bjmi.setText("背景颜色..."); 
bjmi.setMnemonic(KeyEvent.VK_B); 
bjmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK)); 
bjmi.addActionListener(al); 
setjm.add(fjmi); 
setjm.add(bjmi); 
helpjm=new JMenu(); 
helpjm.setText("帮助"); 
helpjm.setMnemonic(KeyEvent.VK_H); 
aboutjmi=new JMenuItem(); 
aboutjmi.setText("关于"); 
aboutjmi.setMnemonic(KeyEvent.VK_A); 
aboutjmi.addActionListener(al); 
helpjm.add(aboutjmi); 
jmb.add(jm); 
jmb.add(editjm); 
jmb.add(setjm); 
jmb.add(helpjm); 
jtb=new JToolBar(); 
jtb.setFloatable(false); 
addButtons(); 
this.getContentPane().add(jtb,BorderLayout.PAGE_START); 
createPopupMenu(); 
} 
public void createPopupMenu() 
{ 
JPopupMenu popupjm=new JPopupMenu(); 
MouseListener ml=new popuplistener(popupjm); 
JMenuItem jmi=null; 
jmi=new JMenuItem("新建"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
newactionlistener(); 
} 
}); 
popupjm.add(jmi); 
popupjm.addSeparator(); 
jmi=new JMenuItem("打开"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
openactionlistener(); 
} 
}); 
popupjm.add(jmi); 
jmi=new JMenuItem("保存"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
doSave(fileName); 
} 
}); 
popupjm.add(jmi); 
jmi=new JMenuItem("另保存"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
doSaveAs(); 
} 
}); 
popupjm.add(jmi); 
popupjm.addSeparator(); 
jmi=new JMenuItem("查找"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
new Finder(MyTextEditor.this,jta).show(); 
} 
}); 
popupjm.add(jmi); 
popupjm.addSeparator(); 
jmi=new JMenuItem("复制"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
jta.copy(); 
} 
}); 
popupjm.add(jmi); 
jmi=new JMenuItem("粘贴"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
jta.paste(); 
} 
}); 
popupjm.add(jmi); 
jmi=new JMenuItem("剪贴"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
jta.cut(); 
} 
}); 
popupjm.add(jmi); 
popupjm.addSeparator(); 
jmi=new JMenuItem("文字颜色"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
Color newColor=JColorChooser.showDialog(MyTextEditor.this,"请选择文字颜色",jta.getForeground()); 
jta.setForeground(newColor); 
} 
}); 
popupjm.add(jmi); 
jmi=new JMenuItem("背景颜色"); 
jmi.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
Color newColor=JColorChooser.showDialog(MyTextEditor.this,"请选择背景颜色",jta.getBackground()); 
jta.setBackground(newColor); 
} 
}); 
popupjm.add(jmi); 
jta.addMouseListener(ml); 
} 
class popuplistener extends MouseAdapter 
{ 
JPopupMenu popupjm; 
public popuplistener(JPopupMenu popupjm) 
{ 
this.popupjm=popupjm; 
} 
public void mousePressed(MouseEvent e) 
{ 
executeTrigger(e); 
} 
public void mouseReleased(MouseEvent e) 
{ 
executeTrigger(e); 
} 
public void executeTrigger(MouseEvent e) 
{ 
if(e.isPopupTrigger()) 
popupjm.show(e.getComponent(),e.getX(),e.getY()); 
} 
} 
public void addButtons() 
{ 
JButton jb[]=new JButton[7]; 
for(int i=0;i<7;i++) 
{ 
jb[i]=new JButton(); 
addListeners(jb[i],quick[i]); 
jb[i].setToolTipText(quick[i]); 
jb[i].setIcon(createImage("1.gif")); 
jtb.add(jb[i]); 
} 
} 
public void addListeners(JButton jb,String actionCommand) 
{ 
if(actionCommand.equals(quick[0])) 
{ 
jb.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
newactionlistener(); 
} 
}); 
} 
else if(actionCommand.equals(quick[1])) 
{ 
jb.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
openactionlistener(); 
} 
}); 
} 
else if(actionCommand.equals(quick[2])) 
{ 
jb.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
doSave(fileName); 
} 
}); 
} 
else if(actionCommand.equals(quick[3])) 

⌨️ 快捷键说明

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