From 58377e2303645dced4e1d4215d4345595434e1ab Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Tue, 24 May 2022 20:34:30 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 10 ---------- .gitignore | 1 - .project | 17 ----------------- .settings/org.eclipse.jdt.core.prefs | 14 -------------- readme.md | 2 -- src/java2022spring/Test.java | 7 ------- untitled/src/CalculatorInit.java | 5 +++++ 7 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 .classpath delete mode 100644 .gitignore delete mode 100644 .project delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 readme.md delete mode 100644 src/java2022spring/Test.java create mode 100644 untitled/src/CalculatorInit.java diff --git a/.classpath b/.classpath deleted file mode 100644 index ac9ce57..0000000 --- a/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ae3c172..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/bin/ diff --git a/.project b/.project deleted file mode 100644 index b7e8a74..0000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - java2022spring - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index dbc27c5..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,14 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=17 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=17 diff --git a/readme.md b/readme.md deleted file mode 100644 index 4af16ad..0000000 --- a/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# ¿ÆÑ§¼ÆËãÆ÷ -0103 ÕÅÈý \ No newline at end of file diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java deleted file mode 100644 index 24deb29..0000000 --- a/src/java2022spring/Test.java +++ /dev/null @@ -1,7 +0,0 @@ -package java2022spring; - -public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} diff --git a/untitled/src/CalculatorInit.java b/untitled/src/CalculatorInit.java new file mode 100644 index 0000000..439a16e --- /dev/null +++ b/untitled/src/CalculatorInit.java @@ -0,0 +1,5 @@ +import javax.swing.*; + +public class CalculatorInit { + JTextField tf=new JTextField(30); +} -- Gitee From f8348d9500c207f0c8dd0d0f03ee7e8134729350 Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Tue, 24 May 2022 20:34:52 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\256\241\346\200\247\345\256\236\351\252\214.iml" | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 "untitled/\350\256\276\350\256\241\346\200\247\345\256\236\351\252\214.iml" diff --git "a/untitled/\350\256\276\350\256\241\346\200\247\345\256\236\351\252\214.iml" "b/untitled/\350\256\276\350\256\241\346\200\247\345\256\236\351\252\214.iml" new file mode 100644 index 0000000..6db0c46 --- /dev/null +++ "b/untitled/\350\256\276\350\256\241\346\200\247\345\256\236\351\252\214.iml" @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file -- Gitee From 86b2adaa556812ac1449064d3e863a8df3250f08 Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Sun, 29 May 2022 22:39:13 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BB=8A=E5=A4=A9=E5=85=A8=E5=A4=A9?= =?UTF-8?q?=E6=95=B2=E8=AF=BE=E8=AE=BE=EF=BC=8C=E8=BD=AC=E6=8D=A2=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E9=A1=B9=E7=9B=AE=20=E6=96=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=EF=BC=8C=E5=AE=8C=E6=88=90=E4=BA=86=E8=AE=B0=E4=BA=8B?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E4=B8=80=E4=BA=9B=E5=9F=BA=E6=9C=AC=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E5=88=9B=E5=BB=BA=20=E5=B9=B6=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E8=8F=9C=E5=8D=95=E9=87=8C=E6=96=87=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E5=92=8C=E7=BC=96=E8=BE=91=E7=9A=84=E9=83=A8=E5=88=86=E7=AE=80?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0=EF=BC=8C=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=AE=9E=E7=8E=B0=E6=96=87=E6=9C=AC=E5=9F=9F=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=AE=9E=E7=8E=B0=E5=8F=B3=E9=94=AE=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E8=8F=9C=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- untitled/src/CalculatorInit.java | 5 - untitled/src/NotePad.java | 251 +++++++++++++++++++++++++++++++ 2 files changed, 251 insertions(+), 5 deletions(-) delete mode 100644 untitled/src/CalculatorInit.java create mode 100644 untitled/src/NotePad.java diff --git a/untitled/src/CalculatorInit.java b/untitled/src/CalculatorInit.java deleted file mode 100644 index 439a16e..0000000 --- a/untitled/src/CalculatorInit.java +++ /dev/null @@ -1,5 +0,0 @@ -import javax.swing.*; - -public class CalculatorInit { - JTextField tf=new JTextField(30); -} diff --git a/untitled/src/NotePad.java b/untitled/src/NotePad.java new file mode 100644 index 0000000..5dda965 --- /dev/null +++ b/untitled/src/NotePad.java @@ -0,0 +1,251 @@ +import javax.imageio.stream.ImageInputStream; +import javax.swing.*; +import javax.swing.undo.UndoManager; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Scanner; + +public class NotePad { + //先把记事本上,所需è¦çš„å„个组件创建出æ¥ã€‚ + JFrame f=new JFrame("简易记事本"); + JTextArea jta=new JTextArea(); + JMenuBar jMenuBar=new JMenuBar(); + JMenu fileMenu=new JMenu("文件"); + JMenu editMenu=new JMenu("编辑"); + JMenu formatMenu=new JMenu("æ ¼å¼"); + JMenu lookMenu=new JMenu("查看"); + JMenu helpMenu=new JMenu("帮助"); + JMenu fontMenu=new JMenu("字体设置"); + JMenuItem xinJian=new JMenuItem("新建"); + JMenuItem daKai=new JMenuItem("打开"); + JMenuItem baoChun=new JMenuItem("ä¿å­˜"); + JMenuItem linChunWei=new JMenuItem("å¦å­˜ä¸º"); + JMenuItem tuiChu=new JMenuItem("退出"); + JMenuItem cheXiao=new JMenuItem("撤销"); + JMenuItem jianQie=new JMenuItem("剪切"); + JMenuItem fuZhi=new JMenuItem("å¤åˆ¶"); + JMenuItem zhanTie=new JMenuItem("粘贴"); + JMenuItem shanChu=new JMenuItem("删除"); + JMenuItem ziTiXuanZhe=new JMenuItem("字体选择"); + JMenuItem ziTiYanSe=new JMenuItem("字体颜色"); + JMenuItem guanYuJiShiBen=new JMenuItem("关于记事本"); + JCheckBoxMenuItem ziDong=new JCheckBoxMenuItem("自动æ¢è¡Œ",true); + JPopupMenu jPopupMenu=new JPopupMenu(); + JFileChooser chooser; + Scanner sc=new Scanner(System.in); + //创建撤销资æºç®¡ç†å™¨ + UndoManager Undo=new UndoManager(); + File file; + //自学文本滤过器 + //这里属于应用别人的代ç è¿˜æ²¡å­¦å¾—很精通文件过滤器 + private class filter extends javax.swing.filechooser.FileFilter + + { + public boolean accept(File file) { + String name=file.getName(); + name.toLowerCase(); + if(name.endsWith(".txt")||file.isDirectory()) + return true; + else return false; + } + + public String getDescription() + { + return ".txt"; + } + } + + + public void init(){ + //组装视图,实现记事本的编程逻辑,部分编程 + /*1从å°åˆ°å¤§ç»„装一些组件,然åŽå†åœ¨ç›¸åº”的组件里é¢ï¼Œæ·»åŠ äº‹ä»¶ç›‘å¬å™¨ï¼Œå®Œæˆç›‘å¬å·¥ä½œ*/ + //1.1å®Œæˆæ–‡ä»¶èœå•的组件的组装与实现。 + //1.1.1 â€æ–°å»ºâ€œçš„itemï¼› + xinJian.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));//为选项添加一些快æ·é”®ã€‚ + fileMenu.add(xinJian); + xinJian.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.setText(""); + } + }); + //1.1.2 “打开â€çš„item + fileMenu.add(daKai); + daKai.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK)); + daKai.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + + try{ + String s="";//检查出,用一个sæ¥è®°å½•获å–fileçš„å称,然åŽï¼Œå†æŠŠè¿™ä¸ªå称传到记事本窗å£ä½œä¸ºtitle + chooser=new JFileChooser(); + chooser.setFileFilter(new filter());//å‚考代ç ï¼Œè‡ªå·±æ¨¡ä»¿å†™çš„ + chooser.setCurrentDirectory(new File(".")); + chooser.showOpenDialog(f); + file=chooser.getSelectedFile(); + s=file.getName(); + f.setTitle(s); + int length=(int)file.length(); + FileReader fr=new FileReader(file); + char[] ch=new char[length]; + fr.read(ch); + s=new String(ch); + jta.setText(s.trim());} + catch(Exception exe){} + + } + + }); + //1.1.3 ä¿å­˜æ–‡ä»¶çš„选项添加 + fileMenu.add(baoChun); + baoChun.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK)); + baoChun.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if(file==null)try{ + chooser=new JFileChooser(); + chooser.setFileFilter(new filter()); + chooser.setCurrentDirectory(new File(".")); + int showSaveDialog=chooser.showSaveDialog(null); + if(showSaveDialog==chooser.APPROVE_OPTION) + { File file = chooser.getSelectedFile();; + file.createNewFile(); + FileWriter fw=new FileWriter(file); + fw.write(jta.getText()); + fw.close(); + } + } + catch(Exception ece){} + else try{ + FileWriter fw=new FileWriter(file); + fw.write(jta.getText()); + fw.close(); + } + catch(Exception ece){} + } + }); + //1.1.4 å¦å­˜ä¸ºé€‰é¡¹çš„æ·»åŠ ( + fileMenu.add(linChunWei); + linChunWei.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_DOWN_MASK)); + linChunWei.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + chooser=new JFileChooser(); + chooser.setCurrentDirectory(new File(".")); + try{ + String s=""; + if(file==null) { + File file = chooser.getSelectedFile(); + } + else { + s=file.getName(); + chooser.setSelectedFile(new File(s)); + } + chooser.setFileFilter(new filter()); + int saveDialog=chooser.showSaveDialog(null); + if(saveDialog==chooser.APPROVE_OPTION) + { if(file!=null) file.delete(); + File file = chooser.getSelectedFile(); + file.createNewFile(); + FileWriter fw=new FileWriter(file); + fw.write(jta.getText()); + fw.close(); + } + } + catch(Exception ece){} + } + }); + //1.1.5,删除选项的一个添加 + fileMenu.add(tuiChu); + tuiChu.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + //1.2完æˆç¼–辑èœå•项的组装和逻辑实现 + //1.2.1 撤销选项的æ“作 + editMenu.add(cheXiao); + editMenu.addSeparator(); + cheXiao.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK)); + cheXiao.addActionListener(new ActionListener () { + @Override + public void actionPerformed(ActionEvent e) { + if (Undo.canUndo()){ + Undo.undo(); + } + } + }); + //1.2.2 剪切选项的æ“作 + editMenu.add(jianQie); + jianQie.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK)); + jianQie.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.cut(); + } + }); + //1.2.3 å¤åˆ¶çš„选项的一个æ“作 + editMenu.add(fuZhi); + fuZhi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK)); + fuZhi.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.copy(); + } + }); + //1.2.3 粘贴的选项的一个添加æ“作 + editMenu.add(zhanTie); + zhanTie.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK)); + zhanTie.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.paste(); + } + }); + //1.2.4 删除选项的一个添加æ“作 + editMenu.add(shanChu); + shanChu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK)); + shanChu.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd()); + } + }); + //1.2çš„å³é”®å¿«æ·èœå• + jPopupMenu.add(cheXiao); + jPopupMenu.addSeparator(); + jPopupMenu.add(jianQie); + jPopupMenu.add(fuZhi); + jPopupMenu.add(zhanTie); + jta.add(jPopupMenu); + jta.setComponentPopupMenu(jPopupMenu); + + + /*对文本区域设置一下想è¦çš„功能*/ + f.setBounds(250,250,800,550); + f.setJMenuBar(jMenuBar); + jta.setFont(new Font("宋体",Font.PLAIN,12)); + JScrollPane scrollPane=new JScrollPane(jta); + //以下先完善代ç ï¼Œå¯¹éƒ¨åˆ†åŠŸèƒ½è¿›è¡Œæµ‹è¯• + jMenuBar.add(fileMenu); + jMenuBar.add(editMenu); + jMenuBar.add(lookMenu); + jMenuBar.add(helpMenu); + f.add(scrollPane); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setVisible(true); + } + + public static void main(String[] args) { + new NotePad().init(); + } + +} -- Gitee From d44bb4d2132c7e7067dbed240344de560c851009 Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Wed, 1 Jun 2022 15:44:15 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E8=AE=B0=E4=BA=8B=E6=9C=AC=E6=9C=80=E4=BD=8E=E6=A0=87=E5=87=86?= =?UTF-8?q?=E7=9A=84=E5=85=A8=E9=83=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- untitled/src/NotePad.java | 178 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 170 insertions(+), 8 deletions(-) diff --git a/untitled/src/NotePad.java b/untitled/src/NotePad.java index 5dda965..f8267f2 100644 --- a/untitled/src/NotePad.java +++ b/untitled/src/NotePad.java @@ -14,6 +14,7 @@ import java.util.Scanner; public class NotePad { //先把记事本上,所需è¦çš„å„个组件创建出æ¥ã€‚ + static int a=16; JFrame f=new JFrame("简易记事本"); JTextArea jta=new JTextArea(); JMenuBar jMenuBar=new JMenuBar(); @@ -33,10 +34,22 @@ public class NotePad { JMenuItem fuZhi=new JMenuItem("å¤åˆ¶"); JMenuItem zhanTie=new JMenuItem("粘贴"); JMenuItem shanChu=new JMenuItem("删除"); + JMenuItem quanXuan=new JMenuItem("全选"); + JMenuItem cheXiao1=new JMenuItem("撤销"); + JMenuItem jianQie1=new JMenuItem("剪切"); + JMenuItem fuZhi1=new JMenuItem("å¤åˆ¶"); + JMenuItem zhanTie1=new JMenuItem("粘贴"); + JMenuItem shanChu1=new JMenuItem("删除"); + JMenuItem quanXuan1=new JMenuItem("全选"); JMenuItem ziTiXuanZhe=new JMenuItem("字体选择"); JMenuItem ziTiYanSe=new JMenuItem("字体颜色"); + JMenuItem ziTiDaXiao=new JMenuItem("字体大å°"); + JComboBox box=new JComboBox<>(); + JMenuItem chaKanBangZhu=new JMenuItem("查看帮助"); JMenuItem guanYuJiShiBen=new JMenuItem("关于记事本"); JCheckBoxMenuItem ziDong=new JCheckBoxMenuItem("自动æ¢è¡Œ",true); + JCheckBoxMenuItem zhuangTaiLan=new JCheckBoxMenuItem("çŠ¶æ€æ ",true); + JLabel label1=new JLabel(" UTF-8"); JPopupMenu jPopupMenu=new JPopupMenu(); JFileChooser chooser; Scanner sc=new Scanner(System.in); @@ -162,7 +175,7 @@ public class NotePad { catch(Exception ece){} } }); - //1.1.5,删除选项的一个添加 + //1.1.5,退出选项的一个添加 fileMenu.add(tuiChu); tuiChu.addActionListener(new ActionListener() { @Override @@ -175,6 +188,7 @@ public class NotePad { editMenu.add(cheXiao); editMenu.addSeparator(); cheXiao.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK)); + jta.getDocument().addUndoableEditListener(Undo); cheXiao.addActionListener(new ActionListener () { @Override public void actionPerformed(ActionEvent e) { @@ -219,27 +233,176 @@ public class NotePad { jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd()); } }); + //1.2.5 全选 选项的一个添加æ“作 + editMenu.addSeparator(); + editMenu.add(quanXuan); + quanXuan.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK)); + quanXuan.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.selectAll(); + } + }); //1.2çš„å³é”®å¿«æ·èœå• - jPopupMenu.add(cheXiao); + //1.2.1 撤销选项的æ“作 + jPopupMenu.add(cheXiao1); + jPopupMenu.addSeparator(); + cheXiao1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK)); + cheXiao1.addActionListener(new ActionListener () { + @Override + public void actionPerformed(ActionEvent e) { + if (Undo.canUndo()){ + Undo.undo(); + } + } + }); + //1.2.2 剪切选项的æ“作 + jPopupMenu.add(jianQie1); + jianQie1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK)); + jianQie1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.cut(); + } + }); + //1.2.3 å¤åˆ¶çš„选项的一个æ“作 + jPopupMenu.add(fuZhi1); + fuZhi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK)); + fuZhi1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.copy(); + } + }); + //1.2.3 粘贴的选项的一个添加æ“作 + jPopupMenu.add(zhanTie1); + zhanTie1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK)); + zhanTie1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.paste(); + } + }); + //1.2.4 删除选项的一个添加æ“作 + jPopupMenu.add(shanChu1); + shanChu1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK)); + shanChu1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd()); + } + }); + //1.2.5 全选 选项的一个添加æ“作 jPopupMenu.addSeparator(); - jPopupMenu.add(jianQie); - jPopupMenu.add(fuZhi); - jPopupMenu.add(zhanTie); - jta.add(jPopupMenu); + jPopupMenu.add(quanXuan1); + quanXuan1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK)); + quanXuan1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jta.selectAll(); + } + }); jta.setComponentPopupMenu(jPopupMenu); + //1.3 æ ¼å¼èœå•æ çš„组件添加和逻辑实现 + formatMenu.add(ziDong); + ziDong.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_DOWN_MASK)); + ziDong.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if(ziDong.getState()){ + jta.setLineWrap(true); + }else + { + jta.setLineWrap(false); + } + } + }); + //在èœå•项目里å†è®¾ç½®ä¸€ä¸ªèœå•,存放字体设置的两个组件æ“作。 + fontMenu.add(ziTiXuanZhe);//添加字体选择的èœå•项 + ziTiXuanZhe.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + GraphicsEnvironment get = GraphicsEnvironment.getLocalGraphicsEnvironment(); + JList ziTiNames = new JList(get.getAvailableFontFamilyNames());//获å–å¯ä»¥æ›´æ¢å­—体的åå• + int isShow = JOptionPane.showConfirmDialog(f, new JScrollPane(ziTiNames),"选择字体",JOptionPane.OK_CANCEL_OPTION);//å¾€å¯¹è¯æ¡†é‡Œæ·»åŠ å­—ä½“åˆ—è¡¨ï¼Œä»¥å‚考选择,返回int类型与ok_OPTION 比对。 + Object selectedZiTi = ziTiNames.getSelectedValue(); + if (isShow == JOptionPane.OK_OPTION && selectedZiTi != null) { + jta.setFont(new Font(ziTiNames.getSelectedValue().toString(), Font.PLAIN, a)); + } + } + }); + fontMenu.add(ziTiYanSe); + //字体的颜色选择,利用JColorChooseræ¥å®žçŽ°ã€‚ + ziTiYanSe.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Color color = JColorChooser.showDialog(null, "文字颜色选择", Color.WHITE); + jta.setForeground(color); + } + }); + fontMenu.add(ziTiDaXiao); + //字体大å°çš„选择 + for (int i = 1; i <100 ; i++) { + box.addItem(i+""); + } + ziTiDaXiao.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + int isShow = JOptionPane.showConfirmDialog(f, box,"字体大å°",JOptionPane.OK_CANCEL_OPTION); + Object selectedZiTi = box.getSelectedItem(); + a=Integer.parseInt(selectedZiTi.toString()); + if(isShow == JOptionPane.OK_OPTION && selectedZiTi != null){ + jta.setFont(new Font(" ",Font.PLAIN,a)); + } + } + }); + + formatMenu.add(fontMenu); + //1.4实现完æˆå¸®åŠ©èœå•的关于记事本的组件 + helpMenu.add(chaKanBangZhu); + helpMenu.add(guanYuJiShiBen); + guanYuJiShiBen.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JOptionPane.showMessageDialog(f,"《java2022年课设》\n作业完æˆè€…:冯铿远\n授课è€å¸ˆï¼šå´æ˜¥èƒ¤\nå®Œæˆæ—¶é—´ï¼š2022å¹´6月","关于",JOptionPane.PLAIN_MESSAGE); + } + }); + chaKanBangZhu.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JOptionPane.showMessageDialog(f,"本记事本å¯ä»¥ä½¿ç”¨å¿«æ·é”®ç­‰è¿›è¡Œç›¸åº”çš„æ“作","帮助",JOptionPane.PLAIN_MESSAGE); + } + }); + //1.5 实现查看èœå• + lookMenu.add(zhuangTaiLan); + f.add(label1,BorderLayout.SOUTH); + zhuangTaiLan.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if(zhuangTaiLan.getState()){ + f.add(label1,BorderLayout.SOUTH); + label1.setVisible(true); + } + else { + label1.setVisible(false); + } + } + }); /*对文本区域设置一下想è¦çš„功能*/ f.setBounds(250,250,800,550); f.setJMenuBar(jMenuBar); jta.setFont(new Font("宋体",Font.PLAIN,12)); - JScrollPane scrollPane=new JScrollPane(jta); + JScrollPane scrollPane=new JScrollPane(jta);//添加一个滚动æ¡ï¼Œåœ¨å¿…è¦çš„æ—¶å€™å‡ºçŽ°æ»šåŠ¨æ¡ //以下先完善代ç ï¼Œå¯¹éƒ¨åˆ†åŠŸèƒ½è¿›è¡Œæµ‹è¯• jMenuBar.add(fileMenu); jMenuBar.add(editMenu); + jMenuBar.add(formatMenu); jMenuBar.add(lookMenu); jMenuBar.add(helpMenu); f.add(scrollPane); + f.setResizable(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } @@ -247,5 +410,4 @@ public class NotePad { public static void main(String[] args) { new NotePad().init(); } - } -- Gitee From fab4bc878ad62ea499bccb35e46e0ff1a4ba0dca Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Wed, 1 Jun 2022 19:43:56 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E6=96=87=E6=9C=AC=E6=A1=86=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=B8=AA=E6=80=A7=E5=8C=96=E4=B8=9C=E8=A5=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- untitled/src/NotePad.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/untitled/src/NotePad.java b/untitled/src/NotePad.java index f8267f2..1b884eb 100644 --- a/untitled/src/NotePad.java +++ b/untitled/src/NotePad.java @@ -394,6 +394,12 @@ public class NotePad { f.setBounds(250,250,800,550); f.setJMenuBar(jMenuBar); jta.setFont(new Font("宋体",Font.PLAIN,12)); + jta.setCaretColor(Color.BLACK); + jta.setSelectedTextColor(Color.WHITE); + jta.setSelectionColor(Color.GRAY); + jta.setMargin(new Insets(3, 5, 3, 5)); + jta.setWrapStyleWord(true); + jta.setDragEnabled(true); JScrollPane scrollPane=new JScrollPane(jta);//添加一个滚动æ¡ï¼Œåœ¨å¿…è¦çš„æ—¶å€™å‡ºçŽ°æ»šåŠ¨æ¡ //以下先完善代ç ï¼Œå¯¹éƒ¨åˆ†åŠŸèƒ½è¿›è¡Œæµ‹è¯• jMenuBar.add(fileMenu); -- Gitee From 7a759a6a099d6c906366b82525a581dfe3e0fb32 Mon Sep 17 00:00:00 2001 From: Kait <1012183298@qq.com> Date: Wed, 1 Jun 2022 23:57:22 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E6=96=87=E6=9C=AC=E6=A1=86=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=B8=AA=E6=80=A7=E5=8C=96=E4=B8=9C=E8=A5=BF=EF=BC=8C?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AE=9E=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- untitled/src/NotePad.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/untitled/src/NotePad.java b/untitled/src/NotePad.java index 1b884eb..d847e57 100644 --- a/untitled/src/NotePad.java +++ b/untitled/src/NotePad.java @@ -15,6 +15,7 @@ import java.util.Scanner; public class NotePad { //先把记事本上,所需è¦çš„å„个组件创建出æ¥ã€‚ static int a=16; + static String b=" "; JFrame f=new JFrame("简易记事本"); JTextArea jta=new JTextArea(); JMenuBar jMenuBar=new JMenuBar(); @@ -52,7 +53,6 @@ public class NotePad { JLabel label1=new JLabel(" UTF-8"); JPopupMenu jPopupMenu=new JPopupMenu(); JFileChooser chooser; - Scanner sc=new Scanner(System.in); //创建撤销资æºç®¡ç†å™¨ UndoManager Undo=new UndoManager(); File file; @@ -326,8 +326,9 @@ public class NotePad { JList ziTiNames = new JList(get.getAvailableFontFamilyNames());//获å–å¯ä»¥æ›´æ¢å­—体的åå• int isShow = JOptionPane.showConfirmDialog(f, new JScrollPane(ziTiNames),"选择字体",JOptionPane.OK_CANCEL_OPTION);//å¾€å¯¹è¯æ¡†é‡Œæ·»åŠ å­—ä½“åˆ—è¡¨ï¼Œä»¥å‚考选择,返回int类型与ok_OPTION 比对。 Object selectedZiTi = ziTiNames.getSelectedValue(); + b=ziTiNames.getSelectedValue().toString(); if (isShow == JOptionPane.OK_OPTION && selectedZiTi != null) { - jta.setFont(new Font(ziTiNames.getSelectedValue().toString(), Font.PLAIN, a)); + jta.setFont(new Font(b, Font.PLAIN, a)); } } }); @@ -352,7 +353,7 @@ public class NotePad { Object selectedZiTi = box.getSelectedItem(); a=Integer.parseInt(selectedZiTi.toString()); if(isShow == JOptionPane.OK_OPTION && selectedZiTi != null){ - jta.setFont(new Font(" ",Font.PLAIN,a)); + jta.setFont(new Font(b,Font.PLAIN,a)); } } }); -- Gitee