金英華?耿瑩
摘要:Java語(yǔ)言是目前最為流行的程序設(shè)計(jì)語(yǔ)言之一,GUI(Graphical User Interface)是計(jì)算機(jī)程序和用戶之間的接口。使用可視化方法開(kāi)發(fā)Java GUI程序具有直觀、快捷、易學(xué)易用等優(yōu)點(diǎn)。本文設(shè)計(jì)了使用GUI圖形程序?qū)崿F(xiàn)文本編輯系統(tǒng),能夠批量地修改文字,提高了工作效率。
關(guān)鍵詞:文字處理系統(tǒng);GUI程序設(shè)計(jì);JFrame;ActionListener
1、概述
Java環(huán)境采用Swing開(kāi)發(fā)工具包,提供的GUI組件,組件包括:窗口、基本組件、布局管理、容器、事件處理、菜單、工具欄、表格等等。使用GUI可以開(kāi)發(fā)可視化界面。
2、GUI的應(yīng)用
本實(shí)例使用GUI程序設(shè)計(jì)實(shí)現(xiàn)文字處理系統(tǒng)。
行號(hào) Zuidazhi.java
1 import javax.swing.*;
2 import java.awt.*;
3 import java.awt.event.*;
4 public class Wenbenshanchu extends JFrame implements ActionListener
5 {
6 Container ctp=getContentPane();
7 JLabel lb1=new JLabel(“輸入文本:”,JLabel.CENTER),
8 lb2=new JLabel(“輸入刪除文本:”,JLabel.CENTER),
9 lb3=new JLabel(“刪除后的文本:”,JLabel.CENTER);
10 TextArea ta1=new JTextArea(2,10),
11 ta2=new JTextArea(2,10),
12 ta3=new JTextArea(2,10);
13 JButton bt1=new JButton(“刪除”);
14 JButton bt2=new JButton(“清空”);
15 Wenbenshanchu()
16 {
17 setTitle(“刪除測(cè)試”);
18 ctp.setLayout(new GridLayout(4,2,5,5));
19 ctp.add(lb1);
20 ctp.add(ta1);
21 ctp.add(lb2);
22 ctp.add(ta2);
23 ctp.add(lb3);
24 ctp.add(ta3);
25 ctp.add(bt1);
26 ctp.add(bt2);
27 bt1.addActionListener(this);
28 bt2.addActionListener(this);
29 addWindowListener(new WindowAdapter()
30 {
31 public void windowClosing(WindowEvent e)
32 {
33 System.exit(0);
34 }
35 });
36 pack();
37 show();
38 }
39 public void actionPerformed(ActionEvent e)
40 {
41 String str1=ta1.getText();
42 String str2=ta2.getText();
43 int n=str1.indexOf(str2);
44 while (n!=-1)
45 {
46 String str3=str1.substring(0,n);
47 String str4=str1.substring(n+str2.length());
48 str1=str3.concat(str4);
49 n=str1.indexOf(str2);
50 }
51 if(e.getSource()==bt1)
52 {
53 ta3.setText(String.valueOf(str1));
54 }
55 if(e.getSource()==bt2)
56 {
57 ta1.setText(null);
58 ta2.setText(null);
59 ta3.setText(null);
60 }
61 }
62 public static void main(String argsp[])
63 {
64 new Wenbenshanchu();
65 }
66 }
程序中分別定義了JLabel類、JTextArea類、JButton類的對(duì)象。Label類的3個(gè)對(duì)象lb1、lb2、lb3置放在容器中,用來(lái)標(biāo)簽內(nèi)容:“輸入文本:”、“輸入刪除文本:”、“刪除后的文本:”,JLabel類的對(duì)象內(nèi)容可以改變,但不能用于計(jì)算。JTextArea類的3個(gè)對(duì)象ta1、ta2、ta3是文本區(qū)域?qū)ο螅梢匀菁{2行10列字符。JButton類的2個(gè)對(duì)象JButton bt1、bt2。bt1接聽(tīng)ActionEvent事件,單擊“刪除”按鈕時(shí)將編輯后的文本顯示在對(duì)象ta3中(String str3=str1.substring(0,n);String str4=str1.substring(n+str2.length());str1=str3.concat(str4); n=str1.indexOf(str2); ta3.setText(String.valueOf(str1));),單擊“清空”按鈕時(shí), 4個(gè)文本框?qū)ο髏a1、ta2、ta3清空(ta1.setText(null);ta2.setText(null);ta3.setText(null);),布局是ctp.setLayout(new GridLayout(4,2,5,5)) ;網(wǎng)格管理器,Java語(yǔ)言中包含以下幾種布局管理器:(1)FlowLayout布局管理器,流式布局管理器是將組件一行一行地依次放置其中,一行放置滿了再放置下一行;(2)GridLayout布局管理器,網(wǎng)格式布局管理器是將容器空間劃分成若干行乘若干列的網(wǎng)格,組件依次放入其中,每個(gè)組件占據(jù)一格;(3)BorderLayout布局管理器 ,它將窗口版面分為東(East)、西(West)、南(South)、北(North)、中央(Center)共五個(gè)區(qū)域,采用順時(shí)針?lè)较颉D囊粋€(gè)區(qū)不配置時(shí),其空間就給其他區(qū)用。每個(gè)區(qū)域只能直接放一個(gè)組件,想要放入多個(gè)組件,需嵌套一個(gè)容器;(4)CardLayout布局管理器,卡片式布局管理器,它將容器中的組件處理為一系列卡片,每一時(shí)刻只顯示出其中的一張,可以翻至下一張、上一張、第一張、最后一張等。
設(shè)計(jì)程序要實(shí)現(xiàn)如圖的運(yùn)行結(jié)果:
參考文獻(xiàn):
[1]李卓玲.Java程序設(shè)計(jì)實(shí)用教程.大連理工大學(xué)出版社,2005.
[2] 遲勇.Java語(yǔ)言程序設(shè)計(jì).大連理工大學(xué)出版社,2013.
[3] 遲勇.Java語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)及實(shí)訓(xùn)指導(dǎo).大連理工大學(xué)出版社,2013.
作者簡(jiǎn)介:金英華,(1965.05),女,遼寧蓋縣,碩士研究生,副教授,研究方向:計(jì)算機(jī)軟件。