📄 jsb.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import javax.*;
public class jsb extends JFrame implements ActionListener,WindowListener,
TextListener,CaretListener
{
//命名File菜单栏
private JMenuItem jmiNew,jmiOpen,jmiSave,jmiSaveAs,jmiPageSetup,jmiPrint,jmiExit;
//命名Edit菜单栏
private JMenuItem Edit_Undo,Edit_Cut,Edit_Copy,Edit_Paste,Edit_Delete,Edit_SelectAll,
Date_Time,Edit_Find,Edit_FindNext,Edit_Replace,Edit_Goto;
//命名Format菜单栏
private JMenuItem Format_Wrap,Format_Font;
//命名View菜单栏
private JMenuItem View_StatusBar;
//命名Help菜单栏
private JMenuItem Help_GetHelp,Help_About;
private JLabel jlblStatus=new JLabel();
String FileName="";
boolean textChanged;
boolean fileSaveSuccess;
private JTextArea EditArea;
private JFileChooser JFC;
public jsb()
{
setTitle("记事本");
this.addWindowListener(this);
JMenuBar mb=new JMenuBar();
setJMenuBar(mb);
textChanged=false;
fileSaveSuccess=false;
JFC=new JFileChooser();
EditArea=new JTextArea();
EditArea.addCaretListener(this);
//建立File菜单栏
JMenu fileMenu=new JMenu("文件(F)");
mb.add(fileMenu);
fileMenu.add(jmiNew=new JMenuItem("新建(N)"));
fileMenu.add(jmiOpen=new JMenuItem("打开(O)"));
fileMenu.add(jmiSave=new JMenuItem("保存(S)"));
fileMenu.add(jmiSaveAs=new JMenuItem("另保存(A)"));
fileMenu.addSeparator();
fileMenu.add(jmiPageSetup=new JMenuItem("页面设置(U)"));
fileMenu.add(jmiPrint=new JMenuItem("打印(P)"));
fileMenu.addSeparator();
fileMenu.add(jmiExit=new JMenuItem("关闭(X)"));
jmiNew.addActionListener(this);
jmiOpen.addActionListener(this);
jmiSave.addActionListener(this);
jmiSaveAs.addActionListener(this);
jmiPageSetup.addActionListener(this);
jmiPrint.addActionListener(this);
jmiExit.addActionListener(this);
//建立Edit菜单
JMenu editMenu=new JMenu("编辑(E)");
mb.add(editMenu);
editMenu.add(Edit_Undo=new JMenuItem("撤销(U)"));
editMenu.addSeparator();
editMenu.add(Edit_Cut=new JMenuItem("剪切(T)"));
editMenu.add(Edit_Copy=new JMenuItem("复制(C)"));
editMenu.add(Edit_Paste=new JMenuItem("粘贴(P)"));
editMenu.add(Edit_Delete=new JMenuItem("删除(L)"));
Edit_Undo.addActionListener(this);
Edit_Cut.addActionListener(this);
Edit_Copy.addActionListener(this);
Edit_Paste.addActionListener(this);
Edit_Delete.addActionListener(this);
editMenu.addSeparator();
editMenu.add(Edit_Find=new JMenuItem("查找(F)"));
editMenu.add(Edit_FindNext=new JMenuItem("查找下一个(N)"));
editMenu.add(Edit_Replace=new JMenuItem("替换(R)"));
editMenu.add(Edit_Goto=new JMenuItem("转到(G)"));
Edit_Find.addActionListener(this);
Edit_FindNext.addActionListener(this);
Edit_Replace.addActionListener(this);
Edit_Goto.addActionListener(this);
editMenu.addSeparator();
editMenu.add(Edit_SelectAll=new JMenuItem("全选(A)"));
Edit_SelectAll.addActionListener(this);
editMenu.addSeparator();
editMenu.add(Date_Time=new JMenuItem("时间(T)"));
Date_Time.addActionListener(this);
//建立Format菜单栏
JMenu formatMenu=new JMenu("格式(O)");
mb.add(formatMenu);
formatMenu.add(Format_Wrap=new JMenuItem("自动换行(W)"));
formatMenu.add(Format_Font=new JMenuItem("字体(F)"));
Format_Wrap.addActionListener(this);
Format_Font.addActionListener(this);
//建立View菜单栏
JMenu ViewMenu=new JMenu("查看(V)");
mb.add(ViewMenu);
ViewMenu.add(View_StatusBar=new JMenuItem("状态栏(S)"));
View_StatusBar.addActionListener(this);
//建立Help菜单栏
JMenu helpMenu=new JMenu("帮助(H)");
mb.add(helpMenu);
helpMenu.add(Help_GetHelp=new JMenuItem("帮助主题(H)"));
helpMenu.addSeparator();
helpMenu.add(Help_About=new JMenuItem("关于"));
Help_GetHelp.addActionListener(this);
Help_About.addActionListener(this);
JFC.setCurrentDirectory(new File("."));
getContentPane().add(new JScrollPane(EditArea),BorderLayout.CENTER);
getContentPane().add(jlblStatus,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e)
{
String actionCommand=e.getActionCommand();
if(e.getSource() instanceof JMenuItem)
{
if("新建(N)".equals(actionCommand))
textNew();
if("打开(O)".equals(actionCommand))
open();
if("保存(S)".equals(actionCommand))
textSave();
if("另保存(A)".equals(actionCommand))
textSaveAs();
if("页面设置(U)".equals(actionCommand))
pageSetup();
if("打印(P)".equals(actionCommand))
textPrint();
if("撤销(U)".equals(actionCommand))
undo();
if("剪切(T)".equals(actionCommand))
textCut();
if("复制(C)".equals(actionCommand))
textCopy();
if("粘贴(P)".equals(actionCommand))
textPaste();
if("删除(L)".equals(actionCommand))
textDelete();
if("全选(A)".equals(actionCommand))
selectAll();
if("时间(T)".equals(actionCommand))
getDate();
if("状态栏(S)".equals(actionCommand))
status();
if("关于".equals(actionCommand))
about();
if("关闭(X)".equals(actionCommand))
close();
}
}
public void windowClosing(WindowEvent e)
{
this.close();
}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void textValueChanged(TextEvent e){
this.textChanged=true;
}
public void caretUpdate(CaretEvent e){
this.textChanged=true;
}
//新建文本文档
public void textNew(){
if(textChanged==true){
int select=JOptionPane.showConfirmDialog(null,"文本已修改,是否保存","文件保存",JOptionPane.YES_NO_CANCEL_OPTION);
if(select==JOptionPane.YES_OPTION){
this.textSave();
if(fileSaveSuccess==false){
return;}
else{
EditArea.setText("");
this.textChanged=false;
}
}
else if(select==JOptionPane.NO_OPTION){
EditArea.setText("");
this.textChanged=false;
}
else{
return;
}
}
else{
EditArea.setText("");
}
}
//打开文本文档
private void open()
{
if(JFC.showOpenDialog(this)==JFileChooser.APPROVE_OPTION)
{
open(JFC.getSelectedFile());
}
}
private void open(File file)
{
try
{
BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
byte[] b=new byte[in.available()];
in.read(b,0,b.length);
EditArea.append(new String(b,0,b.length));
in.close();
jlblStatus.setText(file.getName()+"已打开");
}
catch(IOException ex)
{
jlblStatus.setText("发生错误"+file.getName());
}
}
//保存文本文档
private void textSave()
{
if(JFC.showSaveDialog(this)==JFileChooser.APPROVE_OPTION)
{
textSave(JFC.getSelectedFile());
}
}
private void textSave(File file)
{
try
{
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(file));
byte[] b=(EditArea.getText()).getBytes();
out.write(b,0,b.length);
out.close();
jlblStatus.setText(file.getName()+"已关闭");
}
catch(IOException ex)
{
jlblStatus.setText("发生错误"+file.getName());
}
}
//另存为文本文档
public void textSaveAs(){
int select=JFC.showSaveDialog(this);
if(select==JFileChooser.APPROVE_OPTION){
this.FileName=JFC.getSelectedFile().getPath();
this.textSave();
}
else {
this.fileSaveSuccess=false;
return;
}
}
//页面设置
public void pageSetup(){
}
//打印
public void textPrint(){
}
//关闭
public void close(){
if(this.textChanged==true){
int select=JOptionPane.showConfirmDialog(null,"文本已修改,是否保存","文件保存",JOptionPane.YES_NO_CANCEL_OPTION);
if(select==JOptionPane.YES_OPTION){
this.textSave();
if(fileSaveSuccess==false){
return;
}
System.exit(1);
}
else if(select==JOptionPane.NO_OPTION){
System.exit(1);
}
else{
return;
}
}
else{
System.exit(1);
}
}
//撤销
public void undo(){
}
//复制
public void textCopy(){
this.EditArea.copy();
}
//剪切
public void textCut(){
this.EditArea.cut();
this.textChanged=true;
}
//粘贴
public void textPaste(){
this.EditArea.paste();
this.textChanged=true;
}
//全选
public void selectAll(){
this.EditArea.selectAll();
}
//删除
public void textDelete(){
int begin=this.EditArea.getSelectionStart();
System.out.println(begin);
int end=this.EditArea.getSelectionEnd();
System.out.println(end);
String newText="";
newText = this.EditArea.getText().substring(0,begin)
+this.EditArea.getText().substring(end,this.EditArea.getText().length());
this.EditArea.setText(newText);
this.textChanged=true;
}
//获得日期时间
public void getDate(){
Date now=new Date();
int minute=now.getMinutes();
String min;
if(minute>=10){
min=Integer.toString(minute);
}
else{
min="0"+Integer.toString(minute);
}
this.EditArea.setText(this.EditArea.getText()+now.getHours()+":"+min+" "
+(now.getYear()+1900)+"-"+now.getMonth()+"-"+now.getDate());
this.textChanged=true;
}
//查找
public void textFind(){
}
//查找下一个
public void textFindNext(){
}
//转到
public void Goto(){
}
//替换
public void textReplace(){
}
//设置字体
public void setFont(){
}
//自动换行
public void wrap(){
boolean oldWrap=this.EditArea.getLineWrap();
if(oldWrap){
this.Format_Wrap.setLabel("自动换行(W)");
}
else{
this.Format_Wrap.setLabel("*自动换行(W)");
}
this.EditArea.setLineWrap(!oldWrap);
}
//显示帮助信息
public void getHelp(){
}
//显示关于
public void about(){
JOptionPane.showMessageDialog(this,"作者:天天","关于这个记事本",
JOptionPane.INFORMATION_MESSAGE);
}
//状态栏
public void status(){
this.status();
}
public static void main(String[] args)
{
jsb frame=new jsb();
frame.setSize(600,400);
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -