📄 jishiben3.java
字号:
package yu2;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
import javax.swing.plaf.OptionPaneUI;
public class jishiben3 extends JFrame implements ActionListener, MouseListener{
private JMenu[] 菜单=new JMenu[5] ;
private JMenuBar 菜单条;
private JMenuItem[] 菜单项=new JMenuItem[23];
private JTextArea area;
private String path;
public jishiben3(String s){
super(s);
this.setSize(800, 600);
this.setDefaultCloseOperation(3);
Container con=this.getContentPane();
area=new JTextArea();
area.addMouseListener(this);
con.add(new JScrollPane(area));
菜单[0]=new JMenu("文件(F)");
菜单[1]=new JMenu("编辑(E)");
菜单[2]=new JMenu("格式(0)");
菜单[3]=new JMenu("查看(V)");
菜单[4]=new JMenu("帮助(H)");
菜单项[0]=new JMenuItem("新建(N)");
菜单项[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));//声明快捷键
菜单项[1]=new JMenuItem("打开(O)");
菜单项[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
菜单项[2]=new JMenuItem("保存(S)");
菜单项[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
菜单项[3]=new JMenuItem("另存为(A)");
菜单项[4]=new JMenuItem("页面设置(U)...");
菜单项[5]=new JMenuItem("打出(P)..");
菜单项[5].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
菜单项[6]=new JMenuItem("退出(X)");
菜单项[7]=new JMenuItem("撤销(U)");
菜单项[7].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
菜单项[8]=new JMenuItem("剪切(T)");
菜单项[8].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
菜单项[9]=new JMenuItem("复制(C)");
菜单项[9].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
菜单项[10]=new JMenuItem("粘贴(P)");
菜单项[10].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
菜单项[11]=new JMenuItem("删除(L)");
菜单项[12]=new JMenuItem("查找(F)");
菜单项[12].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
菜单项[13]=new JMenuItem("查找下一个(N)");
菜单项[14]=new JMenuItem("替换(R)");
菜单项[14].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
菜单项[15]=new JMenuItem("转到(G)");
菜单项[15].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
菜单项[16]=new JMenuItem("全选(A)");
菜单项[16].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
菜单项[17]=new JMenuItem("时间/日期(D)");
菜单项[18]=new JMenuItem("自动换行(W)");
菜单项[19]=new JMenuItem("字体(F)");
菜单项[20]=new JMenuItem("状态栏(S)");
菜单项[21]=new JMenuItem("帮助主题(H)");
菜单项[22]=new JMenuItem("关于记事本(A)");
菜单[0].add(菜单项[0]);菜单[0].add(菜单项[1]);菜单[0].add(菜单项[2]);
菜单[0].add(菜单项[3]);
菜单[0].addSeparator();
菜单[0].add(菜单项[4]); 菜单[0].add(菜单项[5]);
菜单[0].addSeparator();
菜单[0].add(菜单项[6]);
菜单[1].add(菜单项[7]);
菜单[1].addSeparator();
菜单[1].add(菜单项[8]);菜单[1].add(菜单项[9]);菜单[1].add(菜单项[10]);菜单[1].add(菜单项[11]);
菜单[1].addSeparator();
菜单[1].add(菜单项[12]); 菜单[1].add(菜单项[13]);
菜单[1].add(菜单项[14]);菜单[1].add(菜单项[15]);
菜单[1].addSeparator();菜单[1].add(菜单项[16]);菜单[1].add(菜单项[17]);
菜单[2].add(菜单项[18]);菜单[2].add(菜单项[19]);
菜单[3].add(菜单项[20]);菜单[4].add(菜单项[21]);
菜单[4].add(菜单项[22]);
for (int i = 0; i < 23; i++) {
菜单项[i].addActionListener(this);
}
菜单条=new JMenuBar();
菜单条.setBackground(new Color(236,233,216));//为菜单条添加颜色
菜单条.add(菜单[0]);菜单条.add(菜单[1]);菜单条.add(菜单[2]);
菜单条.add(菜单[3]);菜单条.add(菜单[4]);
this.setJMenuBar(菜单条);
this.setVisible(true);
}
public static void main(String[] args) {
new jishiben3("无标题——记事本");
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==菜单项[1]){
JFileChooser jf=new JFileChooser();
jf.showOpenDialog(null);
File f=jf.getSelectedFile();
path=f.getAbsolutePath();
this.setTitle(path);
try {
BufferedReader bf=new BufferedReader(new FileReader(f));
String aa="";
while ((aa=bf.readLine())!=null) {
area.append(aa+"\n");
}
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("dsdddd");
}
if(e.getSource()==菜单项[2]){
String str=area.getText();
JFileChooser fc=new JFileChooser();
fc.showSaveDialog(null);//打开保存对话框
File f=fc.getSelectedFile();
try {
BufferedWriter bw=new BufferedWriter(new FileWriter(f));
bw.write(str.replace("\n", "\r\n"));
bw.close();
} catch (IOException e2) {
// TODO 自动生成 catch 块
e2.printStackTrace();
}
}
if(e.getSource()==菜单项[6]){
System.exit(0);
}
if(e.getSource()==菜单项[8]){
area.cut();
}
if(e.getSource()==菜单项[9]){
area.copy();
}
if(e.getSource()==菜单项[10]){
area.paste();
}
if(e.getSource()==菜单项[18]){
area.setLineWrap(!area.getLineWrap());
}
if(e.getSource()==菜单项[16])
{
area.selectAll();
菜单项[16].setEnabled(false);
}
if(e.getSource()==菜单项[11]){
int i=area.getSelectionStart();
int j=area.getSelectionEnd();
area.replaceRange("", i,j);
}
if(e.getSource()==菜单项[14]){
JPanel jp=new JPanel();
JTextField jt1,jt2;
jt1=new JTextField(10);
jt2=new JTextField(10);
jp.add(jt1);jp.add(new JLabel("替换为"));
jp.add(jt2);
int j=JOptionPane.showConfirmDialog(this, jp,"替换",JOptionPane.OK_CANCEL_OPTION);
if(j==JOptionPane.YES_OPTION){
String str=area.getText();
str=str.replaceAll(jt1.getText(), jt2.getText());
area.setText(str);
}
}
if(e.getSource()==菜单项[19]) {
JPanel jp=new JPanel();
JComboBox jc=new JComboBox();
jc.addItem("");
jc.addItem("");
jc.addItem("");
jc.addItem("");
jc.addItem("");
jp.add(jc);
JOptionPane.showConfirmDialog(this, jp,"字体大小",JOptionPane.OK_CANCEL_OPTION);
}
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
if(area.getSelectionStart()==0&&area.getSelectionEnd()==area.getText().length()){
菜单项[16].setEnabled(false);
}else
菜单项[16].setEnabled(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -