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