From 6f92ef3588a0dc838d666b3bf7473acf48381be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Sun, 23 May 2021 17:36:06 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=E5=9F=BA=E6=9C=AC=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 81 +++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 5 deletions(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index fc09c19..b950f31 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -1,10 +1,81 @@ package java2020spring; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; +import java.io.*; +import javax.swing.*; -public class Test { - - public static void main(String[] args) { - System.out.println("Hello world!"); +public class Test extends JFrame { + public Test() + { + super("文本编辑器"); + JMenuBar menubar =new JMenuBar(); + JMenu menu1,menu2,menu3,menu4,menu5; + JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25,item31,item41,item51,item52; + this.setJMenuBar(menubar); + menu1=new JMenu("文件"); + menu2=new JMenu("编辑"); + menu3=new JMenu("格式"); + menu4=new JMenu("查看"); + menu5=new JMenu("帮助"); + + item11=new JMenuItem("新建(N)",KeyEvent.VK_N); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK)); + item12=new JMenuItem("打开(O)",KeyEvent.VK_O); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); + item13=new JMenuItem("保存(S)",KeyEvent.VK_S); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK)); + item14=new JMenuItem("另存为(A)",KeyEvent.VK_A); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK)); + item15=new JMenuItem("退出(X)",KeyEvent.VK_X); + item21=new JMenuItem("撤销(U)",KeyEvent.VK_Z); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK)); + item22=new JMenuItem("剪切(T)",KeyEvent.VK_X); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); + item23=new JMenuItem("复制(C)",KeyEvent.VK_C); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); + item24=new JMenuItem("粘贴(P)",KeyEvent.VK_V); + item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); + item25=new JMenuItem("删除(L)",KeyEvent.VK_DELETE); + item31=new JMenuItem("自动换行(W)"); + item41=new JMenuItem("状态栏"); + item51=new JMenuItem("查看帮助(H)"); + item52=new JMenuItem("关于记事本(A)"); + menu1.add(item11); + menu1.add(item12); + menu1.add(item13); + menu1.add(item14); + menu1.add(item15); + menu2.add(item21); + menu2.add(item22); + menu2.add(item23); + menu2.add(item24); + menu2.add(item25); + menu3.add(item31); + menu4.add(item41); + menu5.add(item51); + menu5.add(item52); + menubar.add(menu5); + menubar.add(menu4); + menubar.add(menu3); + menubar.add(menu2); + menubar.add(menu1); + + + + + + + } + public static void main(String arg[]) { + Test test=new Test(); + test.setBounds(200,200,600,400); + test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + test.setVisible(true); } + + + -} +} \ No newline at end of file -- Gitee From 8ed56c7d7ddd404e9fe78f449e1c5339ab51c320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Sun, 30 May 2021 22:47:07 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=92=8C=E7=BC=96=E8=BE=91=E8=8F=9C=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 163 +++++++++++++++++++++++++++-------- 1 file changed, 129 insertions(+), 34 deletions(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index b950f31..78ae26d 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -1,47 +1,45 @@ package java2020spring; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; import java.io.*; import javax.swing.*; - +import java.awt.event.*; public class Test extends JFrame { public Test() { - super("文本编辑器"); + super("鏂囨湰缂栬緫鍣"); JMenuBar menubar =new JMenuBar(); JMenu menu1,menu2,menu3,menu4,menu5; JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25,item31,item41,item51,item52; this.setJMenuBar(menubar); - menu1=new JMenu("文件"); - menu2=new JMenu("编辑"); - menu3=new JMenu("格式"); - menu4=new JMenu("查看"); - menu5=new JMenu("帮助"); + menu1=new JMenu("鏂囦欢"); + menu2=new JMenu("缂栬緫"); + menu3=new JMenu("鏍煎紡"); + menu4=new JMenu("鏌ョ湅"); + menu5=new JMenu("甯姪"); - item11=new JMenuItem("新建(N)",KeyEvent.VK_N); + item11=new JMenuItem("鏂板缓(N)",KeyEvent.VK_N); item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK)); - item12=new JMenuItem("打开(O)",KeyEvent.VK_O); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); - item13=new JMenuItem("保存(S)",KeyEvent.VK_S); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK)); - item14=new JMenuItem("另存为(A)",KeyEvent.VK_A); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK)); - item15=new JMenuItem("退出(X)",KeyEvent.VK_X); - item21=new JMenuItem("撤销(U)",KeyEvent.VK_Z); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK)); - item22=new JMenuItem("剪切(T)",KeyEvent.VK_X); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); - item23=new JMenuItem("复制(C)",KeyEvent.VK_C); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); - item24=new JMenuItem("粘贴(P)",KeyEvent.VK_V); - item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); - item25=new JMenuItem("删除(L)",KeyEvent.VK_DELETE); - item31=new JMenuItem("自动换行(W)"); - item41=new JMenuItem("状态栏"); - item51=new JMenuItem("查看帮助(H)"); - item52=new JMenuItem("关于记事本(A)"); + item12=new JMenuItem("鎵撳紑(O)",KeyEvent.VK_O); + item12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); + item13=new JMenuItem("淇濆瓨(S)",KeyEvent.VK_S); + item13.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK)); + item14=new JMenuItem("鍙﹀瓨涓(A)",KeyEvent.VK_A); + item14.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK)); + item15=new JMenuItem("閫鍑(X)",KeyEvent.VK_X); + item21=new JMenuItem("鎾ら攢(U)",KeyEvent.VK_Z); + item21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK)); + item22=new JMenuItem("鍓垏(T)",KeyEvent.VK_X); + item22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); + item23=new JMenuItem("澶嶅埗(C)",KeyEvent.VK_C); + item23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); + item24=new JMenuItem("绮樿创(P)",KeyEvent.VK_V); + item24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); + item25=new JMenuItem("鍒犻櫎(L)",KeyEvent.VK_DELETE); + item31=new JMenuItem("鑷姩鎹㈣(W)"); + item41=new JMenuItem("鐘舵佹爮"); + item51=new JMenuItem("鏌ョ湅甯姪(H)"); + item52=new JMenuItem("鍏充簬璁颁簨鏈(A)"); menu1.add(item11); menu1.add(item12); menu1.add(item13); @@ -56,11 +54,108 @@ public class Test extends JFrame { menu4.add(item41); menu5.add(item51); menu5.add(item52); - menubar.add(menu5); - menubar.add(menu4); - menubar.add(menu3); - menubar.add(menu2); menubar.add(menu1); + menubar.add(menu2); + menubar.add(menu3); + menubar.add(menu4); + menubar.add(menu5); + JTextArea workArea=new JTextArea(); + JScrollPane Pane =new JScrollPane(workArea); + add(Pane,BorderLayout.CENTER); + FileDialog open =new FileDialog(this,"鎵撳紑",FileDialog.LOAD); + FileDialog save=new FileDialog(this,"鍙﹀瓨涓",FileDialog.SAVE); + item11.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + workArea.setText(""); + } + }); + item12.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + open.setVisible(true); + String dirPath=open.getDirectory(); + String fileName=open.getFile(); + if(dirPath==null||fileName==null) { + return; + } + workArea.setText(""); + File file0=new File(dirPath,fileName); + try { + BufferedReader buff=new BufferedReader(new FileReader(file0)); + String str=null; + while((str=buff.readLine())!=null) { + workArea.append(str+"\r\n"); + } + buff.close(); + } + catch(IOException e1) { + throw new RuntimeException("鏂囦欢璇诲彇澶辫触锛"); + }} + }); + item13.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + File file2=null; + if(file2==null) { + save.setVisible(true); + String dirPath=save.getDirectory(); + String fileName=save.getFile(); + if(dirPath==null||fileName==null) + return; + file2=new File(dirPath,fileName); + try { + BufferedWriter buff=new BufferedWriter(new FileWriter(file2)); + String text=workArea.getText(); + buff.write(text); + buff.close(); + } + catch(IOException e1) { + throw new RuntimeException("鏂囦欢淇濆瓨澶辫触锛"); + } + } + } + }); + item14.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + File file3=null; + if(file3==null) { + save.setVisible(true); + String dirPath=save.getDirectory(); + String fileName=save.getFile(); + if(dirPath==null||fileName==null) + return; + file3=new File(dirPath,fileName); + try { + BufferedWriter buff=new BufferedWriter(new FileWriter(file3)); + String text=workArea.getText(); + buff.write(text); + buff.close(); + } + catch(IOException e1) { + throw new RuntimeException("鏂囦欢淇濆瓨澶辫触锛"); + } + } + } + }); + item15.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + item21.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.cut(); + } + }); + item22.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.copy(); + } + }); + item23.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.paste(); + } + }); + -- Gitee From 2d0f0559c90baae54387d4066278340b68dbcb7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Mon, 31 May 2021 12:02:36 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=92=8C=E7=BC=96=E8=BE=91=E8=8F=9C=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index 78ae26d..cf5c27c 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -2,6 +2,7 @@ package java2020spring; import java.awt.*; import java.io.*; import javax.swing.*; +import javax.swing.undo.*; import java.awt.event.*; public class Test extends JFrame { @@ -140,21 +141,28 @@ public class Test extends JFrame { System.exit(0); } }); - item21.addActionListener(new ActionListener () { + item22.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { workArea.cut(); } }); - item22.addActionListener(new ActionListener () { + item23.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { workArea.copy(); } }); - item23.addActionListener(new ActionListener () { + item24.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { workArea.paste(); } }); + UndoManager undo=new UndoManager(); + workArea.getDocument().addUndoableEditListener(undo); + item21.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + undo.undo(); + } + }); -- Gitee From 092294ff1c5eaa5a27fb27f91a0f078efeec8c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Tue, 1 Jun 2021 21:06:19 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A0=8F=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/AreaListener.java | 48 ++++++++++++++++++++++++ src/java2020spring/Test.java | 55 ++++++++++++++++++++++------ src/java2020spring/number.java | 14 +++++++ 3 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 src/java2020spring/AreaListener.java create mode 100644 src/java2020spring/number.java diff --git a/src/java2020spring/AreaListener.java b/src/java2020spring/AreaListener.java new file mode 100644 index 0000000..e87e1b1 --- /dev/null +++ b/src/java2020spring/AreaListener.java @@ -0,0 +1,48 @@ +package java2020spring; + +import java.awt.BorderLayout; +import java.awt.GridLayout; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; + + + public class AreaListener implements DocumentListener{ + JTextArea area =new JTextArea(); + JLabel label1,label2,label3; + public void setarea(JTextArea text) { + area=text; + } + public void setlabel(JLabel la1,JLabel la2,JLabel la3) { + label1=la1; + label2=la2; + label3=la3; + } + public void changedUpdate(DocumentEvent e) { + int c=area.getCaretPosition(); + int line=0,co1=0; + try { + + line = area.getLineOfOffset(c)+1; + co1=c-area.getLineStartOffset(line-1)+1; + } + catch (BadLocationException e1) { + e1.printStackTrace(); + } + + label1.setText("绗"+line+"琛"); + label2.setText("绗"+co1+"鍒"); + label3.setText("瀛楁暟锛"+number.getnumber(area.getText())); + + } + public void insertUpdate(DocumentEvent e) { + changedUpdate(e); + } + + public void removeUpdate(DocumentEvent e) { + changedUpdate(e); + }} diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index cf5c27c..86cab58 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -2,16 +2,19 @@ package java2020spring; import java.awt.*; import java.io.*; import javax.swing.*; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; import javax.swing.undo.*; import java.awt.event.*; public class Test extends JFrame { - public Test() + Test() { super("鏂囨湰缂栬緫鍣"); JMenuBar menubar =new JMenuBar(); JMenu menu1,menu2,menu3,menu4,menu5; - JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25,item31,item41,item51,item52; + JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25,item51,item52; this.setJMenuBar(menubar); menu1=new JMenu("鏂囦欢"); menu2=new JMenu("缂栬緫"); @@ -37,8 +40,8 @@ public class Test extends JFrame { item24=new JMenuItem("绮樿创(P)",KeyEvent.VK_V); item24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); item25=new JMenuItem("鍒犻櫎(L)",KeyEvent.VK_DELETE); - item31=new JMenuItem("鑷姩鎹㈣(W)"); - item41=new JMenuItem("鐘舵佹爮"); + JCheckBoxMenuItem item31 = new JCheckBoxMenuItem("鑷姩鎹㈣(W)"); + JCheckBoxMenuItem item41 = new JCheckBoxMenuItem("鐘舵佹爮"); item51=new JMenuItem("鏌ョ湅甯姪(H)"); item52=new JMenuItem("鍏充簬璁颁簨鏈(A)"); menu1.add(item11); @@ -163,22 +166,50 @@ public class Test extends JFrame { undo.undo(); } }); + item25.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.setText(""); + } + }); + + item31.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + if(item31.getState()==true) + workArea.setLineWrap(true); + else + workArea.setLineWrap(false); + } + }); + AreaListener areaListener=new AreaListener(); + JPanel pane=new JPanel(); + pane.setLayout(new GridLayout(1,5)); + JLabel label1=new JLabel("绗1琛"); + JLabel label2=new JLabel("绗1鍒"); + JLabel label3=new JLabel("瀛楁暟锛0"); + pane.add(label1); + pane.add(label2); + pane.add(label3); + add(pane,BorderLayout.SOUTH); + areaListener.setlabel(label1, label2, label3); + areaListener.setarea(workArea); + (workArea.getDocument()).addDocumentListener(areaListener); + + - - } - public static void main(String arg[]) { - Test test=new Test(); - test.setBounds(200,200,600,400); - test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - test.setVisible(true); } +public static void main(String arg[]) { + Test test=new Test(); + test.setBounds(200,200,600,400); + test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + test.setVisible(true); +}} + -} \ No newline at end of file diff --git a/src/java2020spring/number.java b/src/java2020spring/number.java new file mode 100644 index 0000000..a2947fe --- /dev/null +++ b/src/java2020spring/number.java @@ -0,0 +1,14 @@ +package java2020spring; + +public class number { + public static int getnumber(String str) { + String dest=""; + if(str!=null) { + str=str.replaceAll("[\\pP鈥樷欌溾漖", ""); + dest=str.replaceAll("\\s*|\t|\r|\n",""); + } + return dest.length(); + } +} + + -- Gitee From 828588f2f8f76dd2c697d2b11f2cb2a983febe08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Thu, 3 Jun 2021 15:00:21 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E5=89=A9?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E9=BC=A0=E6=A0=87=E5=8F=B3=E9=94=AE=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E2=80=9C=E7=BC=96=E8=BE=91=E2=80=9D=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=A0=8F=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=8E=E6=92=A4=E9=94=80=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=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/java2020spring/About.java | 21 +++++ src/java2020spring/Help.java | 27 ++++++ src/java2020spring/Test.java | 160 ++++++++++++++++++++++++++++++---- 3 files changed, 192 insertions(+), 16 deletions(-) create mode 100644 src/java2020spring/About.java create mode 100644 src/java2020spring/Help.java diff --git a/src/java2020spring/About.java b/src/java2020spring/About.java new file mode 100644 index 0000000..d7e3516 --- /dev/null +++ b/src/java2020spring/About.java @@ -0,0 +1,21 @@ +package java2020spring; +import java.awt.Container; +import java.awt.GridLayout; + +import javax.swing.*; +public class About extends JFrame{ +public About() { + super("鍏充簬璁颁簨鏈"); + this.setSize(300,170); + this.setLocation(250,300); + this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + this.setVisible(true); + Container b=this.getContentPane(); + b.setLayout(new GridLayout(2,0)); + JLabel label1=new JLabel(" 杩欐槸涓涓敤Java寮鍙戠殑鏂囨湰缂栬緫鍣 "); + JLabel label2=new JLabel(" Copyright @2021 鎴村槈濡") ; + b.add(label1); + b.add(label2); + +} +} diff --git a/src/java2020spring/Help.java b/src/java2020spring/Help.java new file mode 100644 index 0000000..0ff8f8c --- /dev/null +++ b/src/java2020spring/Help.java @@ -0,0 +1,27 @@ +package java2020spring; +import javax.swing.*; +import java.awt.*; + +public class Help extends JFrame{ + public Help() { + super("甯姪"); + this.setSize(500,170); + this.setLocation(250,300); + this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + this.setVisible(true); + Container a=this.getContentPane(); + a.setLayout(new GridLayout(5,0)); + JLabel label1=new JLabel(" 1銆佸彲閫氳繃鐐瑰嚮鈥滄枃浠垛濅腑鐨勮彍鍗曢」鎵撳紑鎴栦繚瀛樼浉搴旀枃浠躲"); + JLabel label2=new JLabel(" 2銆佸彲閫氳繃鐐瑰嚮鈥滅紪杈戔濅腑鐨勮彍鍗曢」瀵规枃鏈尯鍩熺殑鏂囨湰杩涜鐩稿簲鎿嶄綔"); + JLabel label3=new JLabel(" 3銆佸彲閫氳繃鍕鹃夋垨鑰呭彇娑堝嬀閫夆滄牸寮忊濅腑鐨勨滆嚜鍔ㄦ崲琛屸濓紝鏉ユ墦寮鎴栧叧闂嚜鍔ㄦ崲琛屽姛鑳"); + JLabel label4=new JLabel(" 4銆佸彲閫氳繃鍕鹃夋垨鑰呭彇娑堝嬀绾库滄煡鐪嬧濅腑鐨勨滅姸鎬佹爮鈥濓紝鏉ユ墦寮鎴栬呭叧闂紪杈戝櫒搴曢儴鐨勭姸鎬佹爮,"); + JLabel label5=new JLabel(" 鐘舵佹爮涓垎鍒樉绀哄厜鏍囨墍澶勭殑琛屻佸垪鎯呭喌鍜屾枃鏈瓧鏁"); + a.add(label1); + a.add(label2); + a.add(label3); + a.add(label4); + a.add(label5); + + + } +} diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index 86cab58..7c0e021 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -14,7 +14,8 @@ public class Test extends JFrame { super("鏂囨湰缂栬緫鍣"); JMenuBar menubar =new JMenuBar(); JMenu menu1,menu2,menu3,menu4,menu5; - JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25,item51,item52; + JMenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item25, + item26,item51,item52,item221,item222,item223,item224,item225,item226; this.setJMenuBar(menubar); menu1=new JMenu("鏂囦欢"); menu2=new JMenu("缂栬緫"); @@ -40,20 +41,36 @@ public class Test extends JFrame { item24=new JMenuItem("绮樿创(P)",KeyEvent.VK_V); item24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); item25=new JMenuItem("鍒犻櫎(L)",KeyEvent.VK_DELETE); + item26=new JMenuItem("鎭㈠(R)",KeyEvent.VK_Q); + item26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,ActionEvent.CTRL_MASK)); JCheckBoxMenuItem item31 = new JCheckBoxMenuItem("鑷姩鎹㈣(W)"); JCheckBoxMenuItem item41 = new JCheckBoxMenuItem("鐘舵佹爮"); item51=new JMenuItem("鏌ョ湅甯姪(H)"); item52=new JMenuItem("鍏充簬璁颁簨鏈(A)"); + item221=new JMenuItem("鎾ら攢(U)",KeyEvent.VK_Z); + item221.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK)); + item222=new JMenuItem("鍓垏(T)",KeyEvent.VK_X); + item222.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); + item223=new JMenuItem("澶嶅埗(C)",KeyEvent.VK_C); + item223.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); + item224=new JMenuItem("绮樿创(P)",KeyEvent.VK_V); + item224.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); + item225=new JMenuItem("鍒犻櫎(L)",KeyEvent.VK_DELETE); + item226=new JMenuItem("鎭㈠(R)",KeyEvent.VK_Q); + item226.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,ActionEvent.CTRL_MASK)); menu1.add(item11); menu1.add(item12); menu1.add(item13); menu1.add(item14); + menu1.addSeparator(); menu1.add(item15); - menu2.add(item21); - menu2.add(item22); - menu2.add(item23); - menu2.add(item24); - menu2.add(item25); + menu2.add(item221); + menu2.add(item226); + menu2.addSeparator(); + menu2.add(item222); + menu2.add(item223); + menu2.add(item224); + menu2.add(item225); menu3.add(item31); menu4.add(item41); menu5.add(item51); @@ -159,19 +176,84 @@ public class Test extends JFrame { workArea.paste(); } }); + + UndoManager undo=new UndoManager(); workArea.getDocument().addUndoableEditListener(undo); item21.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { - undo.undo(); + if(undo.canUndo()) + undo.undo(); + else { + JOptionPane.showMessageDialog(null, "鏃犳硶鎾ら攢","璀﹀憡",JOptionPane.WARNING_MESSAGE); } - }); + }}); + + + workArea.getDocument().addUndoableEditListener(undo); + item26.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + if(undo.canRedo()) + undo.redo(); + else { + JOptionPane.showMessageDialog(null, "鏃犳硶鎭㈠","璀﹀憡",JOptionPane.WARNING_MESSAGE); + } + }}); + item25.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { workArea.setText(""); } }); + + + + + item222.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.cut(); + } + }); + item223.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.copy(); + } + }); + item224.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.paste(); + } + }); + + workArea.getDocument().addUndoableEditListener(undo); + item221.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + if(undo.canUndo()) + undo.undo(); + else { + JOptionPane.showMessageDialog(null, "鏃犳硶鎾ら攢","璀﹀憡",JOptionPane.WARNING_MESSAGE); + } + }}); + + workArea.getDocument().addUndoableEditListener(undo); + item226.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + if(undo.canRedo()) + undo.redo(); + else { + JOptionPane.showMessageDialog(null, "鏃犳硶鎭㈠","璀﹀憡",JOptionPane.WARNING_MESSAGE); + } + }}); + + item225.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + workArea.setText(""); + } + }); + + + item31.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { if(item31.getState()==true) @@ -180,8 +262,8 @@ public class Test extends JFrame { workArea.setLineWrap(false); } }); - AreaListener areaListener=new AreaListener(); + AreaListener areaListener=new AreaListener(); JPanel pane=new JPanel(); pane.setLayout(new GridLayout(1,5)); JLabel label1=new JLabel("绗1琛"); @@ -194,22 +276,68 @@ public class Test extends JFrame { areaListener.setlabel(label1, label2, label3); areaListener.setarea(workArea); (workArea.getDocument()).addDocumentListener(areaListener); - - - - + item41.setState(true); + item41.addActionListener(new ActionListener () { + public void actionPerformed(ActionEvent e) { + if(item41.getState()==true) + pane.setVisible(true); + else if(item41.getState()==false) + pane.setVisible(false); + } + }); + item51.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + new Help(); + } + }); + item52.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + new About(); + } + }); + JPopupMenu pop=new JPopupMenu(); + pop.add(item21); + pop.add(item26); + pop.addSeparator(); + pop.add(item22); + pop.add(item23); + pop.add(item24); + pop.add(item25); + workArea.addMouseListener(new mouselistener(pop)); + + } + + +class mouselistener implements MouseListener{ + JPopupMenu pop2; + mouselistener(JPopupMenu pop1){ + pop2=pop1; + } + public void display(MouseEvent e) { + if(e.isPopupTrigger()) + pop2.show(e.getComponent(),e.getX(),e.getY()); + } + public void mouseReleased(MouseEvent e) { + this.display(e); } +public void mouseEntered(MouseEvent e) {} + +public void mouseClicked(MouseEvent e) {} + +public void mousePressed(MouseEvent e) {} + +public void mouseExited(MouseEvent e) {} +} + public static void main(String arg[]) { Test test=new Test(); test.setBounds(200,200,600,400); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); test.setVisible(true); -}} - - +}} -- Gitee From 36aae17cf297cc69764f85a8803280fe351fd60e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Thu, 3 Jun 2021 15:35:23 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A0=8F=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/AreaListener.java | 13 +++++-------- src/java2020spring/Test.java | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/java2020spring/AreaListener.java b/src/java2020spring/AreaListener.java index e87e1b1..962ac3e 100644 --- a/src/java2020spring/AreaListener.java +++ b/src/java2020spring/AreaListener.java @@ -6,12 +6,14 @@ import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; +import javax.swing.event.CaretEvent; +import javax.swing.event.CaretListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; - public class AreaListener implements DocumentListener{ + public class AreaListener implements CaretListener{ JTextArea area =new JTextArea(); JLabel label1,label2,label3; public void setarea(JTextArea text) { @@ -22,7 +24,8 @@ import javax.swing.text.BadLocationException; label2=la2; label3=la3; } - public void changedUpdate(DocumentEvent e) { + public void caretUpdate(CaretEvent e) { + int c=area.getCaretPosition(); int line=0,co1=0; try { @@ -39,10 +42,4 @@ import javax.swing.text.BadLocationException; label3.setText("瀛楁暟锛"+number.getnumber(area.getText())); } - public void insertUpdate(DocumentEvent e) { - changedUpdate(e); } - - public void removeUpdate(DocumentEvent e) { - changedUpdate(e); - }} diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index 7c0e021..83f4e56 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -275,7 +275,7 @@ public class Test extends JFrame { add(pane,BorderLayout.SOUTH); areaListener.setlabel(label1, label2, label3); areaListener.setarea(workArea); - (workArea.getDocument()).addDocumentListener(areaListener); + workArea.addCaretListener(areaListener); item41.setState(true); item41.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { -- Gitee From ebc2117ba588c2304d9555401bd2ab5b51201460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Mon, 7 Jun 2021 18:59:11 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=BA=9B=E9=83=A8=E5=88=86=EF=BC=8C=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E4=BA=86=E6=89=80=E6=9C=89=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/AreaListener.java | 2 +- src/java2020spring/Test.java | 82 +++++++++++++++------------- 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/src/java2020spring/AreaListener.java b/src/java2020spring/AreaListener.java index 962ac3e..c84a18f 100644 --- a/src/java2020spring/AreaListener.java +++ b/src/java2020spring/AreaListener.java @@ -31,7 +31,7 @@ import javax.swing.text.BadLocationException; try { line = area.getLineOfOffset(c)+1; - co1=c-area.getLineStartOffset(line-1)+1; + co1=c-area.getLineStartOffset(line-1); } catch (BadLocationException e1) { e1.printStackTrace(); diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index 83f4e56..2a4dfa6 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -80,9 +80,11 @@ public class Test extends JFrame { menubar.add(menu3); menubar.add(menu4); menubar.add(menu5); + JTextArea workArea=new JTextArea(); - JScrollPane Pane =new JScrollPane(workArea); - add(Pane,BorderLayout.CENTER); + JScrollPane pane =new JScrollPane(workArea); + add(pane,BorderLayout.CENTER); + FileDialog open =new FileDialog(this,"鎵撳紑",FileDialog.LOAD); FileDialog save=new FileDialog(this,"鍙﹀瓨涓",FileDialog.SAVE); item11.addActionListener(new ActionListener() { @@ -114,16 +116,16 @@ public class Test extends JFrame { }); item13.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - File file2=null; - if(file2==null) { + File file1=null; + if(file1==null) { save.setVisible(true); String dirPath=save.getDirectory(); String fileName=save.getFile(); if(dirPath==null||fileName==null) return; - file2=new File(dirPath,fileName); + file1=new File(dirPath,fileName); try { - BufferedWriter buff=new BufferedWriter(new FileWriter(file2)); + BufferedWriter buff=new BufferedWriter(new FileWriter(file1)); String text=workArea.getText(); buff.write(text); buff.close(); @@ -136,22 +138,22 @@ public class Test extends JFrame { }); item14.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - File file3=null; - if(file3==null) { + File file2=null; + if(file2==null) { save.setVisible(true); String dirPath=save.getDirectory(); String fileName=save.getFile(); if(dirPath==null||fileName==null) return; - file3=new File(dirPath,fileName); + file2=new File(dirPath,fileName); try { - BufferedWriter buff=new BufferedWriter(new FileWriter(file3)); + BufferedWriter buff=new BufferedWriter(new FileWriter(file2)); String text=workArea.getText(); buff.write(text); buff.close(); } catch(IOException e1) { - throw new RuntimeException("鏂囦欢淇濆瓨澶辫触锛"); + throw new RuntimeException("鏂囦欢鍙﹀瓨涓哄け璐ワ紒"); } } } @@ -178,23 +180,23 @@ public class Test extends JFrame { }); - UndoManager undo=new UndoManager(); - workArea.getDocument().addUndoableEditListener(undo); + UndoManager undoandreco=new UndoManager(); + workArea.getDocument().addUndoableEditListener(undoandreco); item21.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { - if(undo.canUndo()) - undo.undo(); + if(undoandreco.canUndo()) + undoandreco.undo(); else { JOptionPane.showMessageDialog(null, "鏃犳硶鎾ら攢","璀﹀憡",JOptionPane.WARNING_MESSAGE); } }}); - workArea.getDocument().addUndoableEditListener(undo); + workArea.getDocument().addUndoableEditListener(undoandreco); item26.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { - if(undo.canRedo()) - undo.redo(); + if(undoandreco.canRedo()) + undoandreco.redo(); else { JOptionPane.showMessageDialog(null, "鏃犳硶鎭㈠","璀﹀憡",JOptionPane.WARNING_MESSAGE); } @@ -226,21 +228,21 @@ public class Test extends JFrame { } }); - workArea.getDocument().addUndoableEditListener(undo); + workArea.getDocument().addUndoableEditListener(undoandreco); item221.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { - if(undo.canUndo()) - undo.undo(); + if(undoandreco.canUndo()) + undoandreco.undo(); else { JOptionPane.showMessageDialog(null, "鏃犳硶鎾ら攢","璀﹀憡",JOptionPane.WARNING_MESSAGE); } }}); - workArea.getDocument().addUndoableEditListener(undo); + workArea.getDocument().addUndoableEditListener(undoandreco); item226.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { - if(undo.canRedo()) - undo.redo(); + if(undoandreco.canRedo()) + undoandreco.redo(); else { JOptionPane.showMessageDialog(null, "鏃犳硶鎭㈠","璀﹀憡",JOptionPane.WARNING_MESSAGE); } @@ -257,22 +259,22 @@ public class Test extends JFrame { item31.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { if(item31.getState()==true) - workArea.setLineWrap(true); + workArea.setLineWrap(true); else workArea.setLineWrap(false); } }); AreaListener areaListener=new AreaListener(); - JPanel pane=new JPanel(); - pane.setLayout(new GridLayout(1,5)); + JPanel pane2=new JPanel(); + pane2.setLayout(new GridLayout(1,5)); JLabel label1=new JLabel("绗1琛"); JLabel label2=new JLabel("绗1鍒"); JLabel label3=new JLabel("瀛楁暟锛0"); - pane.add(label1); - pane.add(label2); - pane.add(label3); - add(pane,BorderLayout.SOUTH); + pane2.add(label1); + pane2.add(label2); + pane2.add(label3); + add(pane2,BorderLayout.SOUTH); areaListener.setlabel(label1, label2, label3); areaListener.setarea(workArea); workArea.addCaretListener(areaListener); @@ -311,6 +313,16 @@ public class Test extends JFrame { } + + +public static void main(String arg[]) { + Test test=new Test(); + test.setBounds(200,200,600,400); + test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + test.setVisible(true); + +}} + class mouselistener implements MouseListener{ JPopupMenu pop2; mouselistener(JPopupMenu pop1){ @@ -331,13 +343,5 @@ public void mousePressed(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } - -public static void main(String arg[]) { - Test test=new Test(); - test.setBounds(200,200,600,400); - test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - test.setVisible(true); - -}} -- Gitee From 0c74798438540498d73cd7ad3dcb6469c724a435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=B4XX?= <鎴碭X@LAPTOP-7I1ECVGP> Date: Tue, 8 Jun 2021 16:37:28 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A0=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index 2a4dfa6..ff8b4fc 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -282,9 +282,9 @@ public class Test extends JFrame { item41.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { if(item41.getState()==true) - pane.setVisible(true); + pane2.setVisible(true); else if(item41.getState()==false) - pane.setVisible(false); + pane2.setVisible(false); } }); item51.addActionListener(new ActionListener() { @@ -311,7 +311,7 @@ public class Test extends JFrame { } - + -- Gitee