📄 11232044292.java
字号:
textArea.setSelectionColor(Color.BLACK);
//设置窗体属性
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add("North",mBar);
panel.add("Center",toolbar);
getContentPane().add("North",panel);
getContentPane().add(jsp);
add(statubar,"South"); //添加状态栏
setSize(600,400);
setExtendedState(JFrame.MAXIMIZED_BOTH);//窗口大小设置
setVisible(true); //显示窗口
this.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
exit.doClick();
}});
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}
//添加菜单函数
public static JMenu makeMenu(Object parent,Object [] items,Object target){
JMenu m = null;
if(parent instanceof JMenu)
m = (JMenu) parent;
else if(parent instanceof String)
m = new JMenu((String) parent);
else return null;
for(int i = 0;i < items.length;i++){
if(items[i] == null)
m.addSeparator();
else
m.add(makeMenuItem(items[i],target));
}
return m;
}
//添加子菜单函数
public static JMenuItem makeMenuItem(Object item,Object target){
JMenuItem r = null;
if(item instanceof String)
r = new JMenuItem((String) item);
else if(item instanceof JMenuItem)
r = (JMenuItem) item;
else return null;
if(target instanceof ActionListener)
r.addActionListener((ActionListener) target);
return r;
}
//添加弹出菜单函数
/*
public static JPopupMenu makePopupMenu(Object [] items, Object target){
JPopupMenu m = new JPopupMenu();
for(int i = 0; i < items.length; i++){
if(items[i] == null)
m.addSeparator();
else
m.add(makeMenuItem(items[i],target));
}
return m;
}*/
//新建文件
void newFile(){
if(file == null && !textArea.getText().equals("")){
int i = JOptionPane.showConfirmDialog(this,"文件---无标题 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
if(i == 0) { ////确定
saveAsFile();
textArea.setText("");
}
else if(i == 1) textArea.setText("");////取消
checksave = false;
file = null;
}
if(file != null && !checksave){
int i = JOptionPane.showConfirmDialog(this,"文件 " + file.getPath() + " 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
if(i == 0) {
saveFile();
textArea.setText("");
file = null;
setTitle("新建文本文档----记事本");
}
else if(i == 1) {
textArea.setText("");
file = null;
setTitle("新建文本文档----记事本");
}
}
Get_XY();
}
//打开事件
void openFile(){
if(textArea.getText().equals("")){ openFile_1();}
else if(!checksave && !textArea.getText().equals("")){
int i = JOptionPane.showConfirmDialog(this,"记事本 的文字已改变。\n" + "想保存文件吗?","计事本",1,2);
if(i == 0) { saveAsFile(); openFile_1(); }
else if(i == 1){ openFile_1(); checksave = false;}
}
}
void openFile_1(){
final JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(this);
if(returnVal == JFileChooser.CANCEL_OPTION)//如用户点击取消,则返回
return;
if(returnVal == JFileChooser.APPROVE_OPTION){
file = fc.getSelectedFile();
setTitle(file.getName() + "----记事本");
textArea.append("Opening:" + file.getName() + "." + newline);
textArea.setText("");
if(file.exists())
{
try
{
BufferedReader in = new BufferedReader(new FileReader(file));
String line;
while ((line = in.readLine()) != null)
textArea.append(line + newline);
in.close();
textArea.setCaretPosition(0);
}
catch(IOException ioe)
{
System.err.println(ioe);
}
}
else
{
JOptionPane.showMessageDialog(null,"文件不存在","错误",0);
}
}
Get_XY();
}
//保存事件
void saveFile(){
if( file != null ){
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(file);
}
catch(FileNotFoundException fe)
{
System.err.println("文件未找到");
return;
}
String content=textArea.getText();
try
{
fos.write(content.getBytes());
}
catch(IOException ioe)
{
System.err.println(ioe);
}
finally
{
try
{
if (fos != null)
fos.close();
}
catch(IOException ioe2){}
}
}
else{
saveAsFile();
}
Get_XY();
}
//文件另存为事件
void saveAsFile(){
JFileChooser fc = new JFileChooser();
int returnVal = fc.showSaveDialog(this);
file = fc.getSelectedFile();
if(returnVal == JFileChooser.APPROVE_OPTION){
setTitle("新建文本文档----记事本");
}
FileOutputStream fos = null;
File file1 = new File(fc.getCurrentDirectory(),file.getName());
if(file1.exists()){
int i = JOptionPane.showConfirmDialog(this,"文件 " + file.getPath() + " 已存在\n" + "要替换它吗?","另存为",JOptionPane.YES_NO_OPTION);
if(i == 1 ){
checksave = true;}
}
if (file != null && !checksave){
try
{
fos = new FileOutputStream(file);
}
catch(FileNotFoundException fe)
{
System.err.println("文件未找到");
return;
}
String content = textArea.getText();
try
{
fos.write(content.getBytes());
}
catch(IOException ioe)
{
System.err.println(ioe);
}
finally
{
try
{
if (fos != null)
fos.close();
}
catch(IOException ioe2){}
}
}
file = file1;
}
//退出事件
void exit()
{
if(file == null && textArea.getText().equals("")) System.exit(0);
if (! checksave && !textArea.getText().equals("")){
int i = JOptionPane.showConfirmDialog(null,"文件尚未保存\n想保存文件吗?","记事本",1,2);
if (i == 0){ saveAsFile(); System.exit(0); }
else if (i == 1) System.exit(0);
}
if(file != null){
int i = JOptionPane.showConfirmDialog(null,"文件 " + file.getName() + "已经改变\n想保存当前已修改文件吗?","记事本",1,2);
if(i == 0){ saveFile(); System.exit(0);}
else if(i == 1) System.exit(0);
}
}
//"关于"记事本
void about()
{
JOptionPane.showMessageDialog(null,"记事本 by pawpaw","关于 记事本",3,new ImageIcon("text_editor.GIF"));
}
//状态栏事件 ---- 显示光标所在位置
void Get_XY(){
int i = textArea.getSelectionStart();
int p = 1,q = 1;
for(int j = 0;j < i;j ++)
if(textArea.getText().charAt(j) == '\n') {
p ++;
q = 1;
}
else q ++;
if(status_bar.isSelected()){
statubar.setVisible(true);
if(file != null)
statubar.setText("记事本------" + file.getPath() + "-------------------------------------------------------------------------" + "Ln "+ p +",Col " + q);
else
statubar.setText("记事本------未命名文件" + "-------------------------------------------------------------------------" + "Ln " + p +",Col " + q);
}
else statubar.setVisible(false);
}
//提示查找不到的方法notfindmethod
public void notfindmethod()
{
if(!textArea.getSelectedText().equals(findtxt.getText()))
{
textArea.setCaretPosition(0); //光标返回文件头部
JOptionPane.showMessageDialog(null,"查找不到对应的字符!","查找错误",JOptionPane.ERROR_MESSAGE);
editFindNext.setEnabled(false);
}
}
//查找事件
void FindText()
{
findDialog = new Dialog(this,"查找");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
findtxt = new JTextField(7);
p1.add(new JLabel("输入要查找字符:"));
p1.add(findtxt);
p2.setLayout(new FlowLayout());
p2.add(FindNextItem);
p2.add(findenter);
p2.add(cancel2);
findDialog.add("Center",p1);
findDialog.add("South",p2);
findDialog.setLocation(300,200);
findDialog.setSize(300,100);
findDialog.show();
}
//查找弹出窗口的'确定'事件
void FindEnter()
{
if(findtxt.getText().equals(""))
{
findDialog.dispose();
}
else if(!findtxt.getText().equals(""))
{
str = textArea.getText();
startp = str.indexOf(findtxt.getText());
endp = startp + findtxt.getText().length();
textArea.select(startp,endp);
editFindNext.setEnabled(true);
newendp = endp;////////获取这次查找的终点
notfindmethod();
}
}
//查找下一个事件
void FindNext()
{
nexttemp = newendp; /////获取上次查找的终点做为未查找字符串的起点
String strall = textArea.getText();
textArea.select(nexttemp,strall.length()); /////选中所有未查找的字符串
strnext = textArea.getSelectedText();
newstartp = strnext.indexOf(findtxt.getText()) + nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置
newendp = newstartp + findtxt.getText().length();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -