From f99ea698978075ff6a198cee057afd15f910ca53 Mon Sep 17 00:00:00 2001 From: LENOVO Date: Wed, 18 May 2022 11:14:13 +0800 Subject: [PATCH 1/9] test --- src/java2022spring/Test.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29..7f8d920 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -3,5 +3,6 @@ package java2022spring; public class Test { public static void main(String[] args) { System.out.println("Hello world!"); + } } -- Gitee From adfe09e06be84e80dc96ecdf5d7d42eb6569074e Mon Sep 17 00:00:00 2001 From: LENOVO Date: Wed, 18 May 2022 11:16:20 +0800 Subject: [PATCH 2/9] test --- src/java2022spring/Test.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 7f8d920..ab55829 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -2,7 +2,7 @@ package java2022spring; public class Test { public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("Hello worldfff!"); } } -- Gitee From d32e013ecd3ea247a15cd36637ab92adc33d5f64 Mon Sep 17 00:00:00 2001 From: LENOVO Date: Wed, 18 May 2022 22:10:57 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=81=9A=E5=A5=BD=E4=BA=86=E4=B8=BB?= =?UTF-8?q?=E7=B1=BB=E3=80=81=E7=AA=97=E5=8F=A3=E7=9A=84=E5=A4=A7=E8=87=B4?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E3=80=81=E4=BB=A5=E5=8F=8A=E8=AE=B0=E4=BA=8B?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E6=96=B0=E5=BB=BA=E5=92=8C=E6=89=93=E5=BC=80?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 102 ++++++++++++++++++++++++++ src/java2022spring/NoteMain.java | 13 ++++ 2 files changed, 115 insertions(+) create mode 100644 src/java2022spring/ComputerFrame.java create mode 100644 src/java2022spring/NoteMain.java diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java new file mode 100644 index 0000000..56bb1aa --- /dev/null +++ b/src/java2022spring/ComputerFrame.java @@ -0,0 +1,102 @@ +package java2022spring; +import java.awt.*; +import java.io.*; +import java.awt.event.*; +import javax.swing.*; +import java.io.*; +public class ComputerFrame extends JFrame{ + JMenuBar menubar; + JMenu menu1,menu2,menu3,menu4,menu5; + JMenuItem a1,a2,a3,a4,a5; + JMenuItem b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11; + JMenuItem c1,c2,d1,d2,e1,e2; + JTextArea textArea; + ComputerFrame(){ + setLayout(new BorderLayout()); + String c=" "; + String a=" "; + menubar=new JMenuBar();textArea=new JTextArea(); + menu1=new JMenu("文件"+c);menu2=new JMenu("编辑"+c);menu3=new JMenu("格式"+c); + menu4=new JMenu("查看"+c);menu5=new JMenu("帮助"+c); + menubar.add(menu1);menubar.add(menu2);menubar.add(menu3); + menubar.add(menu4);menubar.add(menu5); + a1=new JMenuItem(c+"新建"+a);a2=new JMenuItem(c+"打开"+a);a3=new JMenuItem(c+"保存"+a); + a4=new JMenuItem(c+"另存为"+a);a5=new JMenuItem(c+"退出"+a); + a1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + try { + boolean exits=textArea.getText().equals(""); + if(exits) { + ComputerFrame frame; + frame=new ComputerFrame(); + frame.setTitle("无标题 - 记事本"); + frame.setBounds(200, 200, 650, 380); + } + else { + int n=JOptionPane.showConfirmDialog(menubar, "你想要将更改保存吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION); + if(n==JOptionPane.YES_OPTION) { + + } + else if(n==JOptionPane.NO_OPTION) { + textArea.setText(""); + } + else { + } + } + } + catch(Exception e1) { + System.out.println(e1.getMessage()); + } + + } + }); + a2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + JFileChooser chooser=new JFileChooser();//文件选择器对话框 + chooser.setDialogTitle("打开"); + chooser.showOpenDialog(null);//显示在显示屏中央 + chooser.setVisible(true); + if(chooser.getSelectedFile()==null) { + return; + } + String filename=chooser.getSelectedFile().getAbsolutePath(); + FileReader fileReader=null; + BufferedReader bufferedReader=null; + try { + fileReader=new FileReader(filename); + bufferedReader=new BufferedReader(fileReader); + String string1=""; + String string2=""; + try { + while((string1=bufferedReader.readLine())!=null) { + string2+=string1+"\r\n"; + } + textArea.setText(string2); + } + catch (IOException e1) { + e1.printStackTrace(); + } + finally { + try { + bufferedReader.close(); + fileReader.close(); + } + catch (IOException e1) { + e1.printStackTrace(); + } + } + } + catch (FileNotFoundException e1) {} + } + }); + + menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); + add(menubar,BorderLayout.NORTH); + add(textArea,BorderLayout.CENTER); + setVisible(true); + + + } + + +} diff --git a/src/java2022spring/NoteMain.java b/src/java2022spring/NoteMain.java new file mode 100644 index 0000000..b2bec9a --- /dev/null +++ b/src/java2022spring/NoteMain.java @@ -0,0 +1,13 @@ +package java2022spring; + +public class NoteMain { + + public static void main(String[] args) { + ComputerFrame frame; + frame=new ComputerFrame(); + frame.setTitle("无标题 - 记事本"); + frame.setBounds(200, 200, 650, 380); + + } + +} -- Gitee From 2682d2cee32e04d15c04d6fdd0fdc5e5336408dc Mon Sep 17 00:00:00 2001 From: LENOVO Date: Mon, 23 May 2022 21:55:26 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=92=8C=E5=8F=A6=E5=AD=98=E4=B8=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 116 ++++++++++++++++++-------- 1 file changed, 80 insertions(+), 36 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index 56bb1aa..ac0c488 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -11,6 +11,8 @@ public class ComputerFrame extends JFrame{ JMenuItem b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11; JMenuItem c1,c2,d1,d2,e1,e2; JTextArea textArea; + String filename; + boolean isNewFile=true; ComputerFrame(){ setLayout(new BorderLayout()); String c=" "; @@ -22,6 +24,10 @@ public class ComputerFrame extends JFrame{ menubar.add(menu4);menubar.add(menu5); a1=new JMenuItem(c+"新建"+a);a2=new JMenuItem(c+"打开"+a);a3=new JMenuItem(c+"保存"+a); a4=new JMenuItem(c+"另存为"+a);a5=new JMenuItem(c+"退出"+a); + menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); + add(menubar,BorderLayout.NORTH); + add(textArea,BorderLayout.CENTER); + setVisible(true); a1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { @@ -35,7 +41,7 @@ public class ComputerFrame extends JFrame{ else { int n=JOptionPane.showConfirmDialog(menubar, "你想要将更改保存吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION); if(n==JOptionPane.YES_OPTION) { - + saveFile(); } else if(n==JOptionPane.NO_OPTION) { textArea.setText(""); @@ -43,6 +49,7 @@ public class ComputerFrame extends JFrame{ else { } } + } catch(Exception e1) { System.out.println(e1.getMessage()); @@ -59,44 +66,81 @@ public class ComputerFrame extends JFrame{ if(chooser.getSelectedFile()==null) { return; } - String filename=chooser.getSelectedFile().getAbsolutePath(); - FileReader fileReader=null; - BufferedReader bufferedReader=null; + filename=chooser.getSelectedFile().getAbsolutePath(); + FileReader fileReader; + BufferedReader bufferedReader; try { - fileReader=new FileReader(filename); - bufferedReader=new BufferedReader(fileReader); - String string1=""; - String string2=""; - try { - while((string1=bufferedReader.readLine())!=null) { - string2+=string1+"\r\n"; - } - textArea.setText(string2); - } - catch (IOException e1) { - e1.printStackTrace(); - } - finally { - try { - bufferedReader.close(); - fileReader.close(); - } - catch (IOException e1) { - e1.printStackTrace(); - } - } - } - catch (FileNotFoundException e1) {} - } + fileReader=new FileReader(filename); + bufferedReader=new BufferedReader(fileReader); + String string1=""; + String string2=""; + while((string1=bufferedReader.readLine())!=null) { + string2+=string1+"\t\n";} + textArea.setText(string2); + bufferedReader.close(); + fileReader.close(); + } + catch (IOException e1) { + e1.printStackTrace(); + } + } + + }); + a3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + save(); + } }); - menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); - add(menubar,BorderLayout.NORTH); - add(textArea,BorderLayout.CENTER); - setVisible(true); - - + a4.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + saveFile(); + } + }); + } + private void save() { + if(isNewFile) { + saveFile(); + isNewFile=false; + } + else { + try { + FileWriter fw = new FileWriter(filename); + BufferedWriter bfw = new BufferedWriter(fw); + bfw.write(textArea.getText(), 0, textArea.getText().length()); + bfw.flush(); + fw.close(); + } catch (IOException ioException) { + } + } + + } + public void saveFile() { + JFileChooser savechooser=new JFileChooser(); + savechooser.setDialogTitle("另存为"); + savechooser.showOpenDialog(null); + int result=savechooser.showSaveDialog(this); + if(result==JFileChooser.CANCEL_OPTION) + JOptionPane.showConfirmDialog(menubar,"你还没有选择文件","记事本",JOptionPane.OK_OPTION); + savechooser.setVisible(true); + String savefile=savechooser.getSelectedFile().getAbsolutePath(); + FileWriter filewriter; + BufferedWriter bufferedwriter; + try { + filewriter=new FileWriter(savefile); + bufferedwriter=new BufferedWriter(filewriter); + bufferedwriter.write(textArea.getText()); + bufferedwriter.close(); + filewriter.close(); + } + catch (IOException e1) { + e1.printStackTrace(); + } + isNewFile=false; + filename=savechooser.getSelectedFile().getAbsolutePath(); + + + } } -} -- Gitee From 9357d45e49a14e26a933a53e7c842e9d6571388c Mon Sep 17 00:00:00 2001 From: LENOVO Date: Tue, 24 May 2022 22:53:09 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E9=87=8C=E7=9A=84=E2=80=9C=E9=80=80=E5=87=BA=E2=80=9D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BB=A5=E5=8F=8A=E7=AE=80=E7=95=A5?= =?UTF-8?q?=E7=9A=84=E5=A4=8D=E5=88=B6=E7=B2=98=E8=B4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 105 +++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index ac0c488..ba0d34d 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -1,5 +1,6 @@ package java2022spring; import java.awt.*; +import java.awt.datatransfer.*; import java.io.*; import java.awt.event.*; import javax.swing.*; @@ -8,23 +9,37 @@ public class ComputerFrame extends JFrame{ JMenuBar menubar; JMenu menu1,menu2,menu3,menu4,menu5; JMenuItem a1,a2,a3,a4,a5; - JMenuItem b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11; + JMenuItem b1,b2,b3,b4,b5,b6,b7,f1,f2,f3,f4,f5,f6; JMenuItem c1,c2,d1,d2,e1,e2; JTextArea textArea; String filename; boolean isNewFile=true; + JPopupMenu popupMenu; + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Clipboard clipBoard = toolkit.getSystemClipboard(); + //获取系统剪切板 + ComputerFrame(){ setLayout(new BorderLayout()); String c=" "; String a=" "; menubar=new JMenuBar();textArea=new JTextArea(); + JPopupMenu pMenu; + pMenu = new JPopupMenu(); menu1=new JMenu("文件"+c);menu2=new JMenu("编辑"+c);menu3=new JMenu("格式"+c); menu4=new JMenu("查看"+c);menu5=new JMenu("帮助"+c); menubar.add(menu1);menubar.add(menu2);menubar.add(menu3); menubar.add(menu4);menubar.add(menu5); a1=new JMenuItem(c+"新建"+a);a2=new JMenuItem(c+"打开"+a);a3=new JMenuItem(c+"保存"+a); a4=new JMenuItem(c+"另存为"+a);a5=new JMenuItem(c+"退出"+a); + b1=new JMenuItem(c+"撤销"+a);b2=new JMenuItem(c+"剪切"+a);b3=new JMenuItem(c+"复制"+a); + b4=new JMenuItem(c+"粘贴"+a);b5=new JMenuItem(c+"删除"+a);b6=new JMenuItem(c+"删除"+a);b7=new JMenuItem(c+"日期"+a); + f1=new JMenuItem(c+"撤销"+a);f2=new JMenuItem(c+"剪切"+a);f3=new JMenuItem(c+"复制"+a); + f4=new JMenuItem(c+"粘贴"+a);f5=new JMenuItem(c+"删除"+a);f6=new JMenuItem(c+"删除"+a); menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); + menu2.add(b1);menu2.add(b2);menu2.add(b3);menu2.add(b4);menu2.add(b5);menu2.add(b6); + pMenu.add(f1);pMenu.add(f2);pMenu.add(f3);pMenu.add(f4); + pMenu.add(f5);pMenu.add(f6); add(menubar,BorderLayout.NORTH); add(textArea,BorderLayout.CENTER); setVisible(true); @@ -97,7 +112,23 @@ public class ComputerFrame extends JFrame{ saveFile(); } }); + a5.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + closeFile(); + } + }); + b3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + copy(); + } + }); + b4.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + paste(); + } + }); } + private void save() { if(isNewFile) { saveFile(); @@ -120,8 +151,10 @@ public class ComputerFrame extends JFrame{ savechooser.setDialogTitle("另存为"); savechooser.showOpenDialog(null); int result=savechooser.showSaveDialog(this); - if(result==JFileChooser.CANCEL_OPTION) + if(result==JFileChooser.CANCEL_OPTION) { JOptionPane.showConfirmDialog(menubar,"你还没有选择文件","记事本",JOptionPane.OK_OPTION); + return; + } savechooser.setVisible(true); String savefile=savechooser.getSelectedFile().getAbsolutePath(); FileWriter filewriter; @@ -138,9 +171,75 @@ public class ComputerFrame extends JFrame{ } isNewFile=false; filename=savechooser.getSelectedFile().getAbsolutePath(); + + } + void closeFile() { + boolean exits=textArea.getText().equals(""); + if(!exits) { + if(isNewFile) { + int n=JOptionPane.showConfirmDialog(menubar,"要将此文件保存吗?","记事本",JOptionPane.YES_NO_OPTION); + if(n==JOptionPane.NO_OPTION) + System.exit(0); + else if(n==JOptionPane.YES_OPTION) + saveFile(); + } + else { + System.exit(0); + } + } + } - + private void copy() { + textArea.requestFocus(); + String text = textArea.getSelectedText(); + StringSelection selection = new StringSelection(text); + clipBoard.setContents(selection, null); + check(); + + } + private void paste() { + textArea.requestFocus(); + Transferable contents = clipBoard.getContents(this); + if (contents == null) + return; + String text = ""; + try { + text = (String) contents.getTransferData(DataFlavor.stringFlavor); + } catch (Exception exception) { + } + textArea.replaceRange(text, textArea.getSelectionStart(), textArea.getSelectionEnd()); + check(); + } + public void check() { + String selectText = textArea.getSelectedText(); + if (selectText == null) { + b1.setEnabled(false); + f1.setEnabled(false); + b2.setEnabled(false); + f2.setEnabled(false); + b4.setEnabled(false); + f4.setEnabled(false); + } else { + b1.setEnabled(true); + f1.setEnabled(true); + b2.setEnabled(true); + f2.setEnabled(true); + b3.setEnabled(true); + f3.setEnabled(true); + } + // 粘帖功能可用性判断 + Transferable contents = clipBoard.getContents(this); // 获取剪贴板中的内容 + if (contents == null) { + b4.setEnabled(false); + f4.setEnabled(false); + } else { + b4.setEnabled(true); + f4.setEnabled(true); + } + } + //check方法为CSDN博主「添砖 Java」的原创文章 + //原文链接:https://blog.csdn.net/weixin_45994391/article/details/113138620 } -- Gitee From 3ab27f413a13fd3e7d9e1bc2d6aeae8503c659c6 Mon Sep 17 00:00:00 2001 From: LENOVO Date: Fri, 27 May 2022 22:35:34 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E6=92=A4?= =?UTF-8?q?=E9=94=80=E3=80=81=E5=89=AA=E5=88=87=E3=80=81=E5=85=A8=E9=80=89?= =?UTF-8?q?=E5=92=8C=E6=97=A5=E6=9C=9F=E7=AD=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 114 +++++++++++++++++++++++--- 1 file changed, 101 insertions(+), 13 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index ba0d34d..b69e91b 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -1,9 +1,11 @@ package java2022spring; import java.awt.*; +import java.time.*; import java.awt.datatransfer.*; import java.io.*; import java.awt.event.*; import javax.swing.*; +import javax.swing.undo.*; import java.io.*; public class ComputerFrame extends JFrame{ JMenuBar menubar; @@ -15,6 +17,7 @@ public class ComputerFrame extends JFrame{ String filename; boolean isNewFile=true; JPopupMenu popupMenu; + protected UndoManager undo = new UndoManager(); Toolkit toolkit = Toolkit.getDefaultToolkit(); Clipboard clipBoard = toolkit.getSystemClipboard(); //获取系统剪切板 @@ -33,16 +36,18 @@ public class ComputerFrame extends JFrame{ a1=new JMenuItem(c+"新建"+a);a2=new JMenuItem(c+"打开"+a);a3=new JMenuItem(c+"保存"+a); a4=new JMenuItem(c+"另存为"+a);a5=new JMenuItem(c+"退出"+a); b1=new JMenuItem(c+"撤销"+a);b2=new JMenuItem(c+"剪切"+a);b3=new JMenuItem(c+"复制"+a); - b4=new JMenuItem(c+"粘贴"+a);b5=new JMenuItem(c+"删除"+a);b6=new JMenuItem(c+"删除"+a);b7=new JMenuItem(c+"日期"+a); + b4=new JMenuItem(c+"粘贴"+a);b5=new JMenuItem(c+"删除"+a);b6=new JMenuItem(c+"全选"+a);b7=new JMenuItem(c+"日期"+a); f1=new JMenuItem(c+"撤销"+a);f2=new JMenuItem(c+"剪切"+a);f3=new JMenuItem(c+"复制"+a); f4=new JMenuItem(c+"粘贴"+a);f5=new JMenuItem(c+"删除"+a);f6=new JMenuItem(c+"删除"+a); + c1=new JMenuItem(c+"自动换行"+a);c2=new JMenuItem(c+"字体"+a); menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); - menu2.add(b1);menu2.add(b2);menu2.add(b3);menu2.add(b4);menu2.add(b5);menu2.add(b6); + menu2.add(b1);menu2.add(b2);menu2.add(b3);menu2.add(b4);menu2.add(b5);menu2.add(b6);menu2.add(b7); pMenu.add(f1);pMenu.add(f2);pMenu.add(f3);pMenu.add(f4); pMenu.add(f5);pMenu.add(f6); add(menubar,BorderLayout.NORTH); add(textArea,BorderLayout.CENTER); setVisible(true); + textArea.getDocument().addUndoableEditListener(undo); // 编辑区注册事件监听(与撤销操作有关) a1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { @@ -117,6 +122,16 @@ public class ComputerFrame extends JFrame{ closeFile(); } }); + b1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + backout(); + } + }); + b2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cutAndpaste(); + } + }); b3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { copy(); @@ -127,8 +142,27 @@ public class ComputerFrame extends JFrame{ paste(); } }); + b5.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + Delete(); + } + }); + b6.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.selectAll(); + } + }); + b7.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + showTime(); + } + }); + c2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + FontDialog(); + } + }); } - private void save() { if(isNewFile) { saveFile(); @@ -188,7 +222,28 @@ public class ComputerFrame extends JFrame{ } } } - + private void backout() { + textArea.requestFocus(); + if(undo.canUndo()) { + try { + undo.undo(); + } + catch(CannotUndoException ex){ + System.out.println("Unable to undo:"+ex); + } + } + if(!undo.canUndo()) { + b1.setEnabled(false); + } + }//撤销功能 + private void cutAndpaste() { + textArea.requestFocus(); + String text = textArea.getSelectedText(); + StringSelection selection = new StringSelection(text); + clipBoard.setContents(selection, null); + textArea.replaceRange("",textArea.getSelectionStart(), textArea.getSelectionEnd()); + check(); + } private void copy() { textArea.requestFocus(); String text = textArea.getSelectedText(); @@ -205,28 +260,39 @@ public class ComputerFrame extends JFrame{ String text = ""; try { text = (String) contents.getTransferData(DataFlavor.stringFlavor); - } catch (Exception exception) { - } + } + catch (Exception exception) { } textArea.replaceRange(text, textArea.getSelectionStart(), textArea.getSelectionEnd()); check(); + } + private void Delete() { + textArea.requestFocus(); + textArea.replaceRange("", textArea.getSelectionStart(), textArea.getSelectionEnd()); + check(); + } + private void showTime() { + LocalDateTime nowTime=LocalDateTime.now(); + String pattern="%tY - % Date: Sat, 28 May 2022 23:07:50 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8D=A2=E8=A1=8C=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E7=8A=B6=E6=80=81=E6=A0=8F=E7=9A=84=E5=B8=83=E5=B1=80?= =?UTF-8?q?=EF=BC=8C=E7=8A=B6=E6=80=81=E6=A0=8F=E5=85=89=E6=A0=87=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E5=AE=9A=E4=BD=8D=E5=8A=9F=E8=83=BD=E8=BF=98?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 192 +++++++++++++++++++++++--- 1 file changed, 170 insertions(+), 22 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index b69e91b..0ac88e3 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -5,6 +5,8 @@ import java.awt.datatransfer.*; import java.io.*; import java.awt.event.*; import javax.swing.*; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import javax.swing.undo.*; import java.io.*; public class ComputerFrame extends JFrame{ @@ -17,6 +19,7 @@ public class ComputerFrame extends JFrame{ String filename; boolean isNewFile=true; JPopupMenu popupMenu; + JLabel statuslabel; protected UndoManager undo = new UndoManager(); Toolkit toolkit = Toolkit.getDefaultToolkit(); Clipboard clipBoard = toolkit.getSystemClipboard(); @@ -26,7 +29,10 @@ public class ComputerFrame extends JFrame{ setLayout(new BorderLayout()); String c=" "; String a=" "; - menubar=new JMenuBar();textArea=new JTextArea(); + + menubar=new JMenuBar(); + textArea=new JTextArea(); + JCheckBoxMenuItem wordwrap,statusbar; JPopupMenu pMenu; pMenu = new JPopupMenu(); menu1=new JMenu("文件"+c);menu2=new JMenu("编辑"+c);menu3=new JMenu("格式"+c); @@ -39,11 +45,18 @@ public class ComputerFrame extends JFrame{ b4=new JMenuItem(c+"粘贴"+a);b5=new JMenuItem(c+"删除"+a);b6=new JMenuItem(c+"全选"+a);b7=new JMenuItem(c+"日期"+a); f1=new JMenuItem(c+"撤销"+a);f2=new JMenuItem(c+"剪切"+a);f3=new JMenuItem(c+"复制"+a); f4=new JMenuItem(c+"粘贴"+a);f5=new JMenuItem(c+"删除"+a);f6=new JMenuItem(c+"删除"+a); - c1=new JMenuItem(c+"自动换行"+a);c2=new JMenuItem(c+"字体"+a); + wordwrap=new JCheckBoxMenuItem(c+"自动换行"+a);c2=new JMenuItem(c+"字体"+a); + statusbar=new JCheckBoxMenuItem(c+"状态栏"+a);d1=new JMenuItem(c+"缩放"+a); menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); menu2.add(b1);menu2.add(b2);menu2.add(b3);menu2.add(b4);menu2.add(b5);menu2.add(b6);menu2.add(b7); + menu3.add(wordwrap);menu3.add(c2);menu4.add(statusbar);menu4.add(d1); pMenu.add(f1);pMenu.add(f2);pMenu.add(f3);pMenu.add(f4); pMenu.add(f5);pMenu.add(f6); + textArea.requestFocus(); + int x=textArea.getX(),y=textArea.getY(); + statuslabel=new JLabel("第"+x+"行,第"+y+"列"); + this.add(statuslabel, BorderLayout.SOUTH); + add(menubar,BorderLayout.NORTH); add(textArea,BorderLayout.CENTER); setVisible(true); @@ -157,6 +170,23 @@ public class ComputerFrame extends JFrame{ showTime(); } }); + wordwrap.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.setLineWrap(true); + } + + }); + statusbar.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.requestFocus(); + if(statusbar.getState()) { + statuslabel.setVisible(true); + } + else + statuslabel.setVisible(false); + } + + }); c2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FontDialog(); @@ -306,27 +336,145 @@ public class ComputerFrame extends JFrame{ } //check方法为CSDN博主「添砖 Java」的原创文章 //原文链接:https://blog.csdn.net/weixin_45994391/article/details/113138620 - //public void FontDialog() { - JLabel name,style,size,pres; - JTextField namefield,stylefield,sizefield,presfield; - JList namelist,sizelist,preslist; - JScrollPane js1,js2,js3; - JButton approve,cancel,chose; - JRadioButton[] language=new JRadioButton[2]; - ButtonGroup languages; - String chooselaguage[]= {new String("记事本"),new String("java")}; - String[] fontNameSet; - String[] fontStyleSet= {"常规","倾斜","加粗","倾斜加粗"}; - JFrame frame; - JFileChooser fieChoose=new JFileChooser(); - Font font,newFont; - GraphicsEnvironment enviornment; - Integer[] fontCon = { Font.PLAIN, Font.ITALIC, Font.BOLD,Font.BOLD | Font.ITALIC }; - String[] fontSizeSet = { "6", "7", "8", "9", "10", "11", "12","14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72"}; - frame=new JFrame(); + public void FontDialog() { + final JDialog fontDialog = new JDialog(this, "字体设置", false); + Container con = fontDialog.getContentPane(); + con.setLayout(new FlowLayout(FlowLayout.LEFT)); + JLabel fontLabel = new JLabel("字体(F):"); + fontLabel.setPreferredSize(new Dimension(100, 20));// 构造一个Dimension,并将其初始化为指定宽度和高度 + JLabel styleLabel = new JLabel("字形(Y):"); + styleLabel.setPreferredSize(new Dimension(100, 20)); + JLabel sizeLabel = new JLabel("大小(S):"); + sizeLabel.setPreferredSize(new Dimension(100, 20)); + final JLabel sample = new JLabel("记事本"); + //sample.setHorizontalAlignment(SwingConstants.CENTER); + final JTextField fontText = new JTextField(9); + fontText.setPreferredSize(new Dimension(200, 20)); + final JTextField styleText = new JTextField(8); + styleText.setPreferredSize(new Dimension(200, 20)); + final int style[] = { Font.PLAIN, Font.BOLD, Font.ITALIC, Font.BOLD + Font.ITALIC }; + final JTextField sizeText = new JTextField(5); + sizeText.setPreferredSize(new Dimension(200, 20)); + JButton okButton = new JButton("确定"); + JButton cancel = new JButton("取消"); + cancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + fontDialog.dispose(); + } + }); + Font currentFont = textArea.getFont(); + fontText.setText(currentFont.getFontName()); + fontText.selectAll(); + // styleText.setText(currentFont.getStyle()); + // styleText.selectAll(); + if (currentFont.getStyle() == Font.PLAIN) + styleText.setText("常规"); + else if (currentFont.getStyle() == Font.BOLD) + styleText.setText("粗体"); + else if (currentFont.getStyle() == Font.ITALIC) + styleText.setText("斜体"); + else if (currentFont.getStyle() == (Font.BOLD + Font.ITALIC)) + styleText.setText("粗斜体"); + styleText.selectAll(); + String str = String.valueOf(currentFont.getSize()); + sizeText.setText(str); + sizeText.selectAll(); + final JList fontList, styleList, sizeList; + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + final String fontName[] = ge.getAvailableFontFamilyNames(); + fontList = new JList(fontName); + fontList.setFixedCellWidth(86); + fontList.setFixedCellHeight(20); + fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + final String fontStyle[] = { "常规", "粗体", "斜体", "粗斜体" }; + styleList = new JList(fontStyle); + styleList.setFixedCellWidth(86); + styleList.setFixedCellHeight(20); + styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + if (currentFont.getStyle() == Font.PLAIN) + styleList.setSelectedIndex(0); + else if (currentFont.getStyle() == Font.BOLD) + styleList.setSelectedIndex(1); + else if (currentFont.getStyle() == Font.ITALIC) + styleList.setSelectedIndex(2); + else if (currentFont.getStyle() == (Font.BOLD + Font.ITALIC)) + styleList.setSelectedIndex(3); + final String fontSize[] = { "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", + "48", "72" }; + sizeList = new JList(fontSize); + sizeList.setFixedCellWidth(43); + sizeList.setFixedCellHeight(20); + sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + fontList.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent event) { + fontText.setText(fontName[fontList.getSelectedIndex()]); + fontText.selectAll(); + Font sampleFont1 = new Font(fontText.getText(), style[styleList.getSelectedIndex()], + Integer.parseInt(sizeText.getText())); + sample.setFont(sampleFont1); + } + }); + styleList.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent event) { + int s = style[styleList.getSelectedIndex()]; + styleText.setText(fontStyle[s]); + styleText.selectAll(); + Font sampleFont2 = new Font(fontText.getText(), style[styleList.getSelectedIndex()], + Integer.parseInt(sizeText.getText())); + sample.setFont(sampleFont2); + } + }); + sizeList.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + // TODO 自动生成的方法存根 + sizeText.setText(fontSize[sizeList.getSelectedIndex()]); + // sizeText.requestFocus(); + sizeText.selectAll(); + Font sampleFont3 = new Font(fontText.getText(), style[styleList.getSelectedIndex()], + Integer.parseInt(sizeText.getText())); + sample.setFont(sampleFont3); + } + }); + okButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + Font okFont = new Font(fontText.getText(), style[styleList.getSelectedIndex()], + Integer.parseInt(sizeText.getText())); + textArea.setFont(okFont); + fontDialog.dispose(); + } + }); + JPanel samplePanel = new JPanel(); + samplePanel.setBorder(BorderFactory.createTitledBorder("示例")); + // samplePanel.setLayout(new FlowLayout(FlowLayout.CENTER)); + samplePanel.add(sample); + JPanel panel1 = new JPanel(); + JPanel panel2 = new JPanel(); + JPanel panel3 = new JPanel(); + panel1.add(fontLabel); + panel1.add(styleLabel); + panel1.add(sizeLabel); + panel2.add(fontText); + panel2.add(styleText); + panel2.add(sizeText); + panel2.add(okButton); + panel3.add(new JScrollPane(fontList));// JList不支持直接滚动,所以要让JList作为JScrollPane的视口视图 + panel3.add(new JScrollPane(styleList)); + panel3.add(new JScrollPane(sizeList)); + panel3.add(cancel); + con.add(panel1); + con.add(panel2); + con.add(panel3); + con.add(samplePanel); + fontDialog.setSize(400, 420); + fontDialog.setLocation(200, 200); + fontDialog.setResizable(false); + fontDialog.setVisible(true); + } + //FontDialog方法为CSDN博主「添砖 Java」的原创。 + //原文链接:https://blog.csdn.net/weixin_45994391/article/details/113138620 -} - + + } -- Gitee From ca368f619503b7be3210077eb07f31378f3490a0 Mon Sep 17 00:00:00 2001 From: LENOVO Date: Sat, 4 Jun 2022 12:25:50 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=96=87=E6=9C=AC=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E5=A4=A7=E8=87=B4=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 130 ++++++++++++++++++++++++-- src/java2022spring/NoteMain.java | 8 ++ 2 files changed, 131 insertions(+), 7 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index 0ac88e3..510196e 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -3,10 +3,12 @@ import java.awt.*; import java.time.*; import java.awt.datatransfer.*; import java.io.*; +import java.net.URI; import java.awt.event.*; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import javax.swing.text.BadLocationException; import javax.swing.undo.*; import java.io.*; public class ComputerFrame extends JFrame{ @@ -44,23 +46,24 @@ public class ComputerFrame extends JFrame{ b1=new JMenuItem(c+"撤销"+a);b2=new JMenuItem(c+"剪切"+a);b3=new JMenuItem(c+"复制"+a); b4=new JMenuItem(c+"粘贴"+a);b5=new JMenuItem(c+"删除"+a);b6=new JMenuItem(c+"全选"+a);b7=new JMenuItem(c+"日期"+a); f1=new JMenuItem(c+"撤销"+a);f2=new JMenuItem(c+"剪切"+a);f3=new JMenuItem(c+"复制"+a); - f4=new JMenuItem(c+"粘贴"+a);f5=new JMenuItem(c+"删除"+a);f6=new JMenuItem(c+"删除"+a); + f4=new JMenuItem(c+"粘贴"+a);f5=new JMenuItem(c+"删除"+a);f6=new JMenuItem(c+"全选"+a); + e1=new JMenuItem(c+"查看帮助"+a); wordwrap=new JCheckBoxMenuItem(c+"自动换行"+a);c2=new JMenuItem(c+"字体"+a); statusbar=new JCheckBoxMenuItem(c+"状态栏"+a);d1=new JMenuItem(c+"缩放"+a); menu1.add(a1);menu1.add(a2);menu1.add(a3);menu1.add(a4);menu1.add(a5); menu2.add(b1);menu2.add(b2);menu2.add(b3);menu2.add(b4);menu2.add(b5);menu2.add(b6);menu2.add(b7); menu3.add(wordwrap);menu3.add(c2);menu4.add(statusbar);menu4.add(d1); + menu5.add(e1); pMenu.add(f1);pMenu.add(f2);pMenu.add(f3);pMenu.add(f4); pMenu.add(f5);pMenu.add(f6); - textArea.requestFocus(); - int x=textArea.getX(),y=textArea.getY(); - statuslabel=new JLabel("第"+x+"行,第"+y+"列"); + statuslabel=new JLabel(); this.add(statuslabel, BorderLayout.SOUTH); - add(menubar,BorderLayout.NORTH); add(textArea,BorderLayout.CENTER); setVisible(true); textArea.getDocument().addUndoableEditListener(undo); // 编辑区注册事件监听(与撤销操作有关) + + a1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { @@ -170,6 +173,70 @@ public class ComputerFrame extends JFrame{ showTime(); } }); + f1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + backout(); + } + + }); + f2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cutAndpaste(); + } + }); + f3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + copy(); + } + }); + f4.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + paste(); + } + }); + f5.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + Delete(); + } + }); + f6.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.selectAll(); + } + }); + e1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.requestFocus(); + try { + Desktop desktop=Desktop.getDesktop(); + desktop.browse(new URI("https://cn.bing.com/search?q=%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3" + + "+windows&%E4%B8%AD%E7%9A%84%E8%AE%B0%E4%BA%8B%E6%9C%AC%E7%9A%84%E5%B8%AE%E5%8A%A9")); + + } + catch(Exception ex) { + ex.printStackTrace(); + } + } + }); + textArea.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + if (e.isPopupTrigger()){// 返回此鼠标事件是否为该平台的弹出菜单触发事件 + pMenu.show(e.getComponent(), e.getX(), e.getY());// 在组件调用者的坐标空间中的位置 显示弹出菜单 + } + check();// 设置剪切,复制,粘帖,删除等功能的可用性 + textArea.requestFocus();// 编辑区获取焦点 + } + + public void mouseReleased(MouseEvent e) { + if (e.isPopupTrigger()){// 返回此鼠标事件是否为该平台的弹出菜单触发事件 + pMenu.show(e.getComponent(), e.getX(), e.getY());// 在组件调用者的坐标空间中的位置 显示弹出菜单 + } + check();// 设置剪切,复制,粘帖,删除等功能的可用性 + textArea.requestFocus();// 编辑区获取焦点 + } + }); +//版权声明:本文为CSDN博主「添砖 Java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 +//原文链接:https://blog.csdn.net/weixin_45994391/article/details/113138620 wordwrap.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textArea.setLineWrap(true); @@ -192,7 +259,57 @@ public class ComputerFrame extends JFrame{ FontDialog(); } }); + textArea.addMouseListener(new MouseListener() { + public void mouseClicked(MouseEvent e) {} + public void mousePressed(MouseEvent e) { + if(statusbar.getState()) { + if(e.getModifiers()==MouseEvent.BUTTON1_MASK) { + getRowAndColumn();} + } + } + + public void mouseReleased(MouseEvent e) { + if(statusbar.getState()) { + if(e.getModifiers()==MouseEvent.BUTTON1_MASK) { + getRowAndColumn(); + } + } + } + + public void mouseEntered(MouseEvent e) {} + + public void mouseExited(MouseEvent e) {} + + }); + textArea.addKeyListener(new KeyListener() { + + public void keyTyped(KeyEvent e) {} + + public void keyPressed(KeyEvent e) { + if(statusbar.getState()) + getRowAndColumn(); + } + public void keyReleased(KeyEvent e) { + if(statusbar.getState()) + getRowAndColumn(); + } + + }); + } + public void getRowAndColumn() { + int row=1,column=1; + + try { + int position=textArea.getCaretPosition(); + row=textArea.getLineOfOffset(position); + column=position-textArea.getLineStartOffset(row)+1; + row+=1; + statuslabel.setText("第"+row+"行,第"+column+"列"); + } catch (BadLocationException e2) { + e2.printStackTrace(); } + + } private void save() { if(isNewFile) { saveFile(); @@ -472,8 +589,7 @@ public class ComputerFrame extends JFrame{ } //FontDialog方法为CSDN博主「添砖 Java」的原创。 //原文链接:https://blog.csdn.net/weixin_45994391/article/details/113138620 - - + } diff --git a/src/java2022spring/NoteMain.java b/src/java2022spring/NoteMain.java index b2bec9a..ccb8b46 100644 --- a/src/java2022spring/NoteMain.java +++ b/src/java2022spring/NoteMain.java @@ -1,5 +1,8 @@ package java2022spring; +import java.awt.event.*; + + public class NoteMain { public static void main(String[] args) { @@ -7,6 +10,11 @@ public class NoteMain { frame=new ComputerFrame(); frame.setTitle("无标题 - 记事本"); frame.setBounds(200, 200, 650, 380); + frame.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + frame.closeFile(); + } + }); } -- Gitee From 99a998030aecbfedc579379fa2f51ca68ea2ea30 Mon Sep 17 00:00:00 2001 From: LENOVO Date: Mon, 6 Jun 2022 19:48:24 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86open=E6=89=93?= =?UTF-8?q?=E5=BC=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/ComputerFrame.java | 96 ++++++++++++++++++--------- 1 file changed, 65 insertions(+), 31 deletions(-) diff --git a/src/java2022spring/ComputerFrame.java b/src/java2022spring/ComputerFrame.java index 510196e..a57834b 100644 --- a/src/java2022spring/ComputerFrame.java +++ b/src/java2022spring/ComputerFrame.java @@ -95,32 +95,8 @@ public class ComputerFrame extends JFrame{ }); a2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - JFileChooser chooser=new JFileChooser();//文件选择器对话框 - chooser.setDialogTitle("打开"); - chooser.showOpenDialog(null);//显示在显示屏中央 - chooser.setVisible(true); - if(chooser.getSelectedFile()==null) { - return; - } - filename=chooser.getSelectedFile().getAbsolutePath(); - FileReader fileReader; - BufferedReader bufferedReader; - try { - fileReader=new FileReader(filename); - bufferedReader=new BufferedReader(fileReader); - String string1=""; - String string2=""; - while((string1=bufferedReader.readLine())!=null) { - string2+=string1+"\t\n";} - textArea.setText(string2); - bufferedReader.close(); - fileReader.close(); - } - catch (IOException e1) { - e1.printStackTrace(); - } - } - + open(); + } }); a3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -310,12 +286,58 @@ public class ComputerFrame extends JFrame{ } } - private void save() { + private void open() { if(isNewFile) { - saveFile(); - isNewFile=false; - } + save(); + isNewFile=false; + } else { + JFileChooser chooser=new JFileChooser();//文件选择器对话框 + chooser.setDialogTitle("打开"); + chooser.showOpenDialog(null);//显示在显示屏中央 + chooser.setVisible(true); + + if(chooser.getSelectedFile()==null) { + return;} + filename=chooser.getSelectedFile().getAbsolutePath(); + FileReader fileReader; + File fileName=chooser.getSelectedFile(); + this.setTitle(fileName.getName() + " - 记事本"); + BufferedReader bufferedReader; + try { + fileReader=new FileReader(filename); + bufferedReader=new BufferedReader(fileReader); + String string1=""; + String string2=""; + while((string1=bufferedReader.readLine())!=null) { + string2+=string1+"\t\n";} + textArea.setText(string2); + bufferedReader.close(); + fileReader.close(); + } + catch (IOException e1) { + e1.printStackTrace(); + } + + } + } + private void save() { + if(isNewFile) { + int n=JOptionPane.showConfirmDialog(menubar,"要将此文件保存吗?","记事本",JOptionPane.YES_NO_OPTION); + if(n==JOptionPane.YES_OPTION) { + + saveFile(); + try { + FileWriter fw = new FileWriter(filename); + BufferedWriter bfw = new BufferedWriter(fw); + bfw.write(textArea.getText(), 0, textArea.getText().length()); + bfw.flush(); + fw.close(); + } catch (IOException ioException) { + } + } + + else if(n==JOptionPane.NO_OPTION){ try { FileWriter fw = new FileWriter(filename); BufferedWriter bfw = new BufferedWriter(fw); @@ -325,7 +347,17 @@ public class ComputerFrame extends JFrame{ } catch (IOException ioException) { } } - + } + else { + try { + FileWriter fw = new FileWriter(filename); + BufferedWriter bfw = new BufferedWriter(fw); + bfw.write(textArea.getText(), 0, textArea.getText().length()); + bfw.flush(); + fw.close(); + } catch (IOException ioException) { + } + } } public void saveFile() { JFileChooser savechooser=new JFileChooser(); @@ -338,6 +370,8 @@ public class ComputerFrame extends JFrame{ } savechooser.setVisible(true); String savefile=savechooser.getSelectedFile().getAbsolutePath(); + File fileName=savechooser.getSelectedFile(); + this.setTitle(fileName.getName() + " - 记事本"); FileWriter filewriter; BufferedWriter bufferedwriter; try { -- Gitee