金英華 周園園
摘要:隨著計(jì)算機(jī)的發(fā)展,計(jì)算機(jī)的使用已不是只單純地面向計(jì)算機(jī)專業(yè)人員,而是已經(jīng)普及到全社會(huì)的每一個(gè)領(lǐng)域。為了方便非計(jì)算機(jī)專業(yè)人員操作計(jì)算機(jī),就產(chǎn)生了圖形界面應(yīng)用程序。GUI(Graphical User Interface)即圖形用戶接口簡(jiǎn)稱,是指用圖形的方式顯示計(jì)算機(jī)操作界面,相比于早期的計(jì)算機(jī)使用的Ms-Dos界面更易于用戶接受。本文設(shè)計(jì)了使用GUI圖形程序?qū)崿F(xiàn)歌手大賽評(píng)分系統(tǒng),方便數(shù)據(jù)的統(tǒng)計(jì)和計(jì)算。
關(guān)鍵詞:歌手大賽評(píng)分系統(tǒng);GUI程序設(shè)計(jì);JFrame;ActionListener
1、概述
(1)簡(jiǎn)介 AWT
AWT是Abstract Window Toolkit(抽象窗口工具包)的縮寫,是程序員使用Java語(yǔ)言設(shè)計(jì)圖形用戶界面的工具,它包含在java.awt包中。java.awt包是Java語(yǔ)言用來設(shè)計(jì)圖形用戶界面的類庫(kù),使用這些類來設(shè)計(jì)GUI設(shè)計(jì)。主要功能包括以下幾個(gè)方面:圖形界面組件、布局設(shè)計(jì)和管理及事件響應(yīng)處理。
下面是AWT包中的類:
1)java.awt.Component :抽象類,提供對(duì)組件操作的通用方法;
2)java.awt.datatransfer :提供在應(yīng)用程序之間和在應(yīng)用程序內(nèi)部傳輸數(shù)據(jù)的類。
3)java.awt.dnd :在GUI 中顯示元素邏輯相關(guān)的實(shí)體之間傳輸信息;
4)java.awt.event :提供事件處理的類;
5)java.awt.image :提供創(chuàng)建和修改圖像的各種類;
6)java.awt.peer :提供AWT程序運(yùn)行所需界面的同位體運(yùn)行;
7)javax.swing :提供圖形用戶界面(GUI)控件。
(2)GUI程序設(shè)計(jì)實(shí)質(zhì):
1)創(chuàng)建可用、易用、美觀的界面;
2)根據(jù)不同的需求進(jìn)行不同的處理,以實(shí)現(xiàn)具體功能。
2、GUI的應(yīng)用
本實(shí)例設(shè)計(jì)實(shí)現(xiàn)歌手大賽評(píng)分系統(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 ImageIcon ig1=new ImageIcon("評(píng)委1.jpg"),
8 ig2=new ImageIcon("評(píng)委2.jpg"),
9 ig3=new ImageIcon("評(píng)委3.jpg"),
10 ig4=new ImageIcon("評(píng)委4.jpg"),
11 ig5=new ImageIcon("評(píng)委5.jpg");
12 JLabel lb1=new JLabel("評(píng)委1:",ig1,JLabel.CENTER),
13 lb2=new JLabel("評(píng)委2:",ig2,JLabel.CENTER),
14 lb3=new JLabel("評(píng)委3:",ig3,JLabel.CENTER),
15 lb4=new JLabel("評(píng)委4:",ig4,JLabel.CENTER),
16 lb5=new JLabel("評(píng)委5:",ig5,JLabel.CENTER),
17 lb6=new JLabel("平均分:");
18 JTextField tf1=new JTextField(10),
19 tf2=new JTextField(10),
20 tf3=new JTextField(10),
21 tf4=new JTextField(10),
22 tf5=new JTextField(10),
23 tf6=new JTextField(10);
24 JButton bt=new JButton("計(jì)算");
25 Pingfenxitong()
26 {
27 setTitle("歌手大賽評(píng)分系統(tǒng)");
28 ctp.setLayout(new GridLayout(7,2,5,5));
29 ctp.add(lb1);
30 ctp.add(tf1);
31 ctp.add(lb2);
32 ctp.add(tf2);
33 ctp.add(lb3);
34 ctp.add(tf3);
35 ctp.add(lb4);
36 ctp.add(tf4);
37 ctp.add(lb5);
38 ctp.add(tf5);
39 ctp.add(lb6);
40 ctp.add(tf6);
41 ctp.add(bt);
42 bt.addActionListener(this);
43 addWindowListener(new WindowAdapter()
44 {
45 public void windowClosing(WindowEvent e)
46 {
47 System.exit(0);
48 }
49 });
50 pack();
51 show();
52 }
53 public void actionPerformed(ActionEvent e)
54 {
55 if(e.getSource()==bt)
56 {
57 int pw1=Integer.parseInt(tf1.getText());
58 int pw2=Integer.parseInt(tf2.getText());
59 int pw3=Integer.parseInt(tf3.getText());
60 int pw4=Integer.parseInt(tf4.getText());
61 int pw5=Integer.parseInt(tf5.getText());
62 double pj=(pw1+pw2+pw3+pw4+pw5)/5;
63 tf6.setText(String.valueOf(pj));
64 }
65 }
66 public static void main(String argsp[])
67 {
68 new Pingfenxitong();
69 }
70 }
本實(shí)例計(jì)算五名評(píng)委的平均分,布局是ctp.setLayout(new GridLayout(7,2,5,5)) ;網(wǎng)格管理器,使用語(yǔ)句Integer.parseInt(tf1.getText());將文本數(shù)字轉(zhuǎn)化成數(shù)值型數(shù)字。通過“計(jì)算”按鈕接聽事件響應(yīng)public void actionPerformed(ActionEvent e),使用語(yǔ)句double pj=(pw1+pw2+pw3+pw4+pw5)/5;求平均分,語(yǔ)句tf6.setText(String.valueOf(pj));將計(jì)算結(jié)果顯示在第6個(gè)文本框中。
設(shè)計(jì)程序要實(shí)現(xiàn)如圖的運(yùn)行結(jié)果:
3、結(jié)束語(yǔ)
GUI圖形用戶界面軟件廣泛地應(yīng)用在各行各業(yè)是計(jì)算機(jī)飛速發(fā)展的一個(gè)重要標(biāo)志,它能使非專業(yè)用戶方便地使用計(jì)算機(jī)操作來完成各種工作。用戶不再需要死記硬背大量的Ms-Dos操作命令,我們可以使用圖標(biāo)、鼠標(biāo)、菜單等來方便地進(jìn)行計(jì)算機(jī)操作。而嵌入式GUI具有下面幾個(gè)方面的基本要求:輕型、占用資源少、高性能、高可靠性、便于移植、可配置等特點(diǎn)。
參考文獻(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ī)軟件。