java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...
這篇文字將要學(xué)習(xí)以下知識(shí)點(diǎn):
1.如何給JButton按鈕添加鼠標(biāo)點(diǎn)擊事件監(jiān)聽器
#1.addMouseListener(MouseListener l) ?給JButton添加一個(gè)鼠標(biāo)點(diǎn)擊監(jiān)聽器l
2.文本區(qū)控件JTextArea 中的方法(剪切,復(fù)制,粘貼,刪除,全選 ?功能的實(shí)現(xiàn))
#1.cut() ?先在文本區(qū)控件中選中一段文字,然后調(diào)用此方法就可以將文字#剪切#到剪貼板(效果和windows中的剪切一模一樣)。
#2.copy()?先在文本區(qū)控件中選中一段文字,然后調(diào)用此方法就可以將文字#復(fù)制#到剪貼板(效果和windows中的剪切一模一樣)。
#3.paste() 隨便復(fù)制一段文字(例如從網(wǎng)頁中),然后選中文本區(qū),再調(diào)用此方法,就可以將剛才復(fù)制的文字復(fù)制到文本區(qū)中
#4.replaceSelection(String content) 先在文本區(qū)中選定一段文字,然后調(diào)用此方法就可以將選中的文字替換為content
#5.selectAll() 選中全部文字,和windows中的ctrl+a效果一樣
1.如何給JButton按鈕添加鼠標(biāo)點(diǎn)擊事件監(jiān)聽器
先弄一個(gè)這種樣子的對話框出來
然后查看源碼中的initialize()方法大概是這個(gè)樣子的:
1 private voidinitialize() {2 frame = newJFrame();3 frame.setBounds(100, 100, 450, 300);4 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5 frame.getContentPane().setLayout(null);6
7 //創(chuàng)建一個(gè)顯示文本為New button的按鈕
8 JButton NewButton = new JButton("New button");9 //設(shè)置按鈕的位置和長寬屬性
10 NewButton.setBounds(28, 138, 117, 129);11 frame.getContentPane().add(NewButton);12 }
View Code
接下來給按鈕NewButton添加一個(gè)鼠標(biāo)點(diǎn)擊事件監(jiān)聽器:在NewButton 上右鍵-Add event handler -mouse-mouseClicked 。完成之后NewButton的鼠標(biāo)點(diǎn)擊事件監(jiān)聽器就添加成功了
然后查看源碼,你會(huì)發(fā)現(xiàn)initialize()方法變成了大概這個(gè)樣子:
1 private voidinitialize() {2 frame = newJFrame();3 frame.setBounds(100, 100, 450, 300);4 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5 frame.getContentPane().setLayout(null);6
7 //創(chuàng)建一個(gè)顯示文本為New button的按鈕
8 JButton NewButton = new JButton("New button");9
10 //給NewButton添加鼠標(biāo)點(diǎn)擊監(jiān)聽器
11 NewButton.addMouseListener(newMouseAdapter() {12 @Override13 public voidmouseClicked(MouseEvent e) {14 //當(dāng)NewButton被點(diǎn)擊時(shí),mouseClicked()方法中的代碼會(huì)被執(zhí)行
15 }16 });17
18 //設(shè)置按鈕的位置和長寬屬性
19 NewButton.setBounds(28, 138, 117, 29);20 frame.getContentPane().add(NewButton);21 }
View Code
其中這一部分就是“鼠標(biāo)點(diǎn)擊監(jiān)聽器”。這里你也許會(huì)產(chǎn)生一個(gè)問題,使用new關(guān)鍵字的時(shí)候都是比如這樣的:A a = new A();,為啥這里new?MouseAdapter()以后還跟了一個(gè)大括號,大括號里面還有一個(gè)方法呢?這種叫做匿名內(nèi)部類,也就是一個(gè)沒有名字的類。徹底搞懂上面那一段代碼需要先了解以下知識(shí)點(diǎn):
1.抽象類
2.接口
3.匿名內(nèi)部類
在《Java瘋狂講義》中有對應(yīng)的章節(jié),等你學(xué)完上面的3個(gè)板塊以后我在出個(gè)上面代碼解釋的詳細(xì)版本給你。這里你只要把它理解為一個(gè)“鼠標(biāo)點(diǎn)擊監(jiān)聽器”就好了。
1 newMouseAdapter() {2 @Override3 public voidmouseClicked(MouseEvent e) {4 //當(dāng)NewButton被點(diǎn)擊時(shí),mouseClicked()方法中的代碼會(huì)被執(zhí)行
5 }6 }
View Code
JButton通過它的addMouseListener()方法給自己添加了上面那個(gè)監(jiān)聽器。這個(gè)監(jiān)聽器的作用是:當(dāng)鼠標(biāo)點(diǎn)擊這個(gè)按鈕時(shí):mouseClicked()方法中的代碼會(huì)被執(zhí)行。這就給了你機(jī)會(huì),讓你可以寫自己的代碼來響應(yīng)點(diǎn)擊事件。將mouseClicked()方法修改為:
1 public voidmouseClicked(MouseEvent e) {2 //當(dāng)NewButton被點(diǎn)擊時(shí),mouseClicked()方法中的代碼會(huì)被執(zhí)行
3 System.out.println("按鈕被點(diǎn)擊了!");4 }
View Code
當(dāng)你點(diǎn)擊按鈕時(shí),控制臺(tái)就會(huì)輸出:按鈕被點(diǎn)擊了!
2.文本區(qū)控件JTextArea 中的方法(剪切,復(fù)制,粘貼,刪除,全選 ?等功能的實(shí)現(xiàn))
下面這個(gè)程序中包含一個(gè)可輸入的文本區(qū)+5個(gè)按鈕。每個(gè)按鈕都被添加了鼠標(biāo)點(diǎn)擊事件。
1 packageswing;2
3 importjava.awt.EventQueue;4
5 importjavax.swing.JFrame;6 importjavax.swing.JTextArea;7 importjavax.swing.JButton;8 importjava.awt.event.ActionListener;9 importjava.awt.event.ActionEvent;10 importjava.awt.event.MouseAdapter;11 importjava.awt.event.MouseEvent;12
13 public classMyEdit {14
15 privateJFrame frame;16 privateJTextArea textArea;17
18 /**
19 * Launch the application.20 */
21 public static voidmain(String[] args) {22 EventQueue.invokeLater(newRunnable() {23 public voidrun() {24 try{25 MyEdit window = newMyEdit();26 window.frame.setVisible(true);27 } catch(Exception e) {28 e.printStackTrace();29 }30 }31 });32 }33
34 /**
35 * Create the application.36 */
37 publicMyEdit() {38 initialize();39 }40
41 /**
42 * Initialize the contents of the frame.43 */
44 private voidinitialize() {45 frame = newJFrame();46 frame.setBounds(100, 100, 450, 300);47 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);48 frame.getContentPane().setLayout(null);49
50 //創(chuàng)建一個(gè)顯示文本為New button的按鈕
51 JButton cutButton = new JButton("剪切");52
53
54 //給NewButton添加鼠標(biāo)點(diǎn)擊監(jiān)聽器
55 cutButton.addMouseListener(newMouseAdapter() {56 @Override57 public voidmouseClicked(MouseEvent e) {58 //當(dāng)NewButton被點(diǎn)擊時(shí),mouseClicked()方法中的代碼會(huì)被執(zhí)行
59
60 }61 });62
63 //設(shè)置按鈕的位置和長寬屬性
64 cutButton.setBounds(6, 121, 117, 29);65 frame.getContentPane().add(cutButton);66
67
68 textArea = newJTextArea();69 textArea.setBounds(6, 6, 425, 81);70 frame.getContentPane().add(textArea);71
72 //復(fù)制按鈕
73 JButton copyButton = new JButton("復(fù)制");74 copyButton.addMouseListener(newMouseAdapter() {75 @Override76 public voidmouseClicked(MouseEvent e) {77 textArea.copy();78 }79 });80 copyButton.setBounds(6, 163, 117, 29);81 frame.getContentPane().add(copyButton);82
83 //粘貼按鈕
84 JButton pasteButton = new JButton("粘貼");85 pasteButton.addMouseListener(newMouseAdapter() {86 @Override87 public voidmouseClicked(MouseEvent e) {88 textArea.paste();89 }90 });91 pasteButton.setBounds(6, 204, 117, 29);92 frame.getContentPane().add(pasteButton);93
94 //刪除按鈕
95 JButton deleteButton = new JButton("刪除");96 deleteButton.addMouseListener(newMouseAdapter() {97 @Override98 public voidmouseClicked(MouseEvent e) {99 //將選中的文字刪除掉。請ctrl+單擊replaceSelection()方法,查看方法使用詳情
100 textArea.replaceSelection(null);101 }102 });103 deleteButton.setBounds(154, 121, 117, 29);104 frame.getContentPane().add(deleteButton);105
106 //全選按鈕
107 JButton selectAllButton = new JButton("全選");108 selectAllButton.addMouseListener(newMouseAdapter() {109 @Override110 public voidmouseClicked(MouseEvent e) {111 textArea.selectAll();112 }113 });114 selectAllButton.setBounds(154, 163, 117, 29);115 frame.getContentPane().add(selectAllButton);116 }117 }
View Code
剪切按鈕:選中文本中輸入的一段問題,然后單擊此按鈕,選中的文字就被復(fù)制到了剪貼板
復(fù)制按鈕:和剪切按鈕類似
粘貼按鈕:隨便在網(wǎng)頁上復(fù)制一段文字,然后選中文本區(qū),然后按粘貼按鈕,在網(wǎng)頁上復(fù)制的文字就被粘貼到文本區(qū)中了
刪除按鈕:選中文本區(qū)中的一段文字,然后點(diǎn)擊此按鈕,選中的文字就被刪除了
全選按鈕:點(diǎn)擊此按鈕,文本區(qū)中的所有文字就會(huì)被選中
那個(gè)記事本程序中的剪切,復(fù)制,粘貼,刪除,全選功能就是上面那樣實(shí)現(xiàn)的。把上面的代碼看懂以后,就又懂了20%咯。
作業(yè):
1.設(shè)計(jì)一個(gè)程序,要求:包含2個(gè)按鈕A B,一開始點(diǎn)擊B按鈕什么反應(yīng)都沒有,然后點(diǎn)擊A按鈕之后再來點(diǎn)擊B按鈕,讓控制臺(tái)輸出:“嘻嘻嘻嘻”。
2.設(shè)計(jì)一個(gè)程序,要求:
1.包含3個(gè)按鈕A B C
2.A按鈕點(diǎn)擊后能給B按鈕設(shè)置一個(gè)鼠標(biāo)點(diǎn)擊監(jiān)聽器,讓B按鈕被點(diǎn)擊后輸出“AAAA”
3.C按鈕點(diǎn)擊后能給B按鈕設(shè)置一個(gè)鼠標(biāo)點(diǎn)擊監(jiān)聽器,讓B按鈕被點(diǎn)擊后輸出“CCCC”
總結(jié)
以上是生活随笔為你收集整理的java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle新建用户sql局域,orac
- 下一篇: 基于javaweb+springboot