📄 notebook.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class TextEditorFrame extends JFrame{
File file=null;
Color color=Color.red;
TextEditorFrame()
{
initTextPane();
initAboutDialog();
initMenu();
}
void initTextPane()
{
getContentPane().add(new JScrollPane(text));
}
JTextPane text=new JTextPane(); //这是用来做文本框的
JFileChooser filechooser=new JFileChooser(); //文件选择框
JColorChooser colorchooser=new JColorChooser();//获取颜色
JDialog about=new JDialog(this); //关于对话框
JMenuBar menubar=new JMenuBar();//菜单
JMenu[] menus=new JMenu[]{new JMenu("File") };//目录
JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("new"), //新建文档
new JMenuItem("open"), //打开文档
new JMenuItem("save"), //保存文档
new JMenuItem("exit") //退出选项
}};
void initMenu()
{
for(int i=0;i<menus.length;i++)
{
menubar.add(menus[i]);
for(int j=0;j<menuitems[i].length;j++)
{
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener( action );
}
}
this.setJMenuBar(menubar);
}
ActionListener action=new ActionListener()
{ //没有错误的时候:
public void actionPerformed(ActionEvent e)
{
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("new")) //创建新文件设置
{
text.setText("");
file=null;
}
else if(id.equals("open")) //打开文件设置
{
if(file !=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(TextEditorFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=filechooser.getSelectedFile();
openFile();
}
}
else if(id.equals("save")) //保存文件设置
{
if(file!=null) filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(TextEditorFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=filechooser.getSelectedFile();
saveFile();
}
}
else if(id.equals("退出"))
{
TextEditorFrame f=new TextEditorFrame();
int s=JOptionPane.showConfirmDialog(f,"你真的要结束吗","结束程序",JOptionPane.YES_NO_CANCEL_OPTION);
if(s==JOptionPane.YES_OPTION)
System.exit(0);
}
}
};
void saveFile(){ //保存文件块
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}
catch(Exception e){e.printStackTrace();}
}
void openFile(){ //打开文件块
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char []buffer=new char[len];
fr.read(buffer,0,len);
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}
void initAboutDialog(){
about.getContentPane().add(new JLabel(""));
about.setModal(true);
about.setSize(200,100);
}
}
public class notebook{
public static void main(String args[]) //主函数
{
TextEditorFrame f=new TextEditorFrame();
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
TextEditorFrame f=new TextEditorFrame();
int s=JOptionPane.showConfirmDialog(f,"你真的要结束吗","结束程序",JOptionPane.YES_NO_OPTION); //退出文本编辑器提示
if(s==JOptionPane.YES_OPTION)
System.exit(0);
}
});
f.setTitle("FileChooserTest");
f.setSize(800,600);
f.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -