JAVA程序设计(图形界面)_第1页
JAVA程序设计(图形界面)_第2页
JAVA程序设计(图形界面)_第3页
JAVA程序设计(图形界面)_第4页
JAVA程序设计(图形界面)_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南财经大学 前一页 课间休息 回目录图形界面从类库来看,类库的使用,例如:西南财经大学 前一页 课间休息 回目录Date类oimport java.util.Date;opublic class datedemoopublic static void main(String args)oDate date = new Date();oSystem.out.println(当前日期:+date);/当前日期oo西南财经大学 前一页 课间休息 回目录随机数类oimport java.util.Random;opublic class randomdemoopublic static void m

2、ain(String args)oRandom r = new Random();oSystem.out.println(整数:+r.nextInt(100);/生成100内的整数o System.out.println(bool数:+r.nextBoolean();/生成布尔o System.out.println(double数:+r.nextDouble();/生成DOubleo System.out.println(Float数:+r.nextFloat();/生成 o System.out.println(int数:+r.nextInt();/生成oo西南财经大学 前一页 课间休息

3、回目录总结:使用技巧(主要形式上)(1)import 语句(2)使用它提供的类,建立对象,使用对象中的属性和方法。 西南财经大学 前一页 课间休息 回目录通过图形用户界面(Graphics User Interface ,GUI),用户和程序之间可以方便地进行交互。早期的JAVA是通过 java.awt包提供许多组件类对图形界面进行设计。例如:Button,TextField,List 等。在此包中所有的类都可以建立与平台无关的图形用户界面。,这些类称谓组件(Components)。JDK1.2版本后,增加了javax.swing包,该包提供了功能更为强大的GUI类,它把 windows的函数

4、引入到AWT中.西南财经大学 前一页 课间休息 回目录AWT介绍AWT(Abstrace Windows ToolKit),抽象工具包,公司开发的。用于开发与平台无关的图形用户界面(GUI),这类称谓组件(Components)。把这个包分为3类。1 组件( Component)2 容器(Container)3 布局管理器( LayoutManager)在Java中的图形界面组件种类多,主要有以下的几个类。西南财经大学 前一页 课间休息 回目录组件o在图形界面中常看见标签,按钮,菜单,这实际上是一个标签,按钮,菜单,这实际上是一个个的组件,如下图所示个的组件,如下图所示。西南财经大学 前一页

5、课间休息 回目录在整个AWT 包中,所有的组件类都是从 Component或 MenuComponent扩展来组件类,继承了Component和MenuComponent类的公共操作。继承关系如下西南财经大学 前一页 课间休息 回目录Swing中的组件在Swing中的组件实际上 Component的子类,与 Component不同的是,所有Swing中的组件前面都加了JXx的形式,例如,JButton西南财经大学 前一页 课间休息 回目录容器(Container)所有的AWT组件都放入到容器组件都放入到容器中,并设置位置,大小等,所有的容器都是Component的子类。西南财经大学 前一页 课

6、间休息 回目录布局管理器使容器中的组件按照指定位置进行摆放使容器中的组件按照指定位置进行摆放。即使是容器改变了大小,布局管理器也可以把组件放到指定位置。这样可以有效的保证版面不会混乱。在AWT 中所有的布局器都是 LayoutManager的子类。布局管理器类的继承关系:西南财经大学 前一页 课间休息 回目录Swing 简介AWT中大量引入Windows函数。Java中提供了图形界面 Swing,并且Swing是用java开发的,直接使用Swing可以轻松构建用户界面。Java中的Swing都保存在 javax.swing包中。从名称看,就知道此包是一个扩展包,是从JComponent扩展出来

7、的,实际上是java.awt.Component的一个子类。西南财经大学 前一页 课间休息 回目录Jcomponent类是所有Swing中的公共超类 JComponent的所有子类继承了JComponent的全部公共操作。继承关系西南财经大学 前一页 课间休息 回目录区别所有的Swing组件名称比AWT 多了一个“ J”在Swing 中,也有容器的概念布局的概念。西南财经大学 前一页 课间休息 回目录基本 容器JFrameo使用Swing创建一个窗口,直接使用 JFrame类。o它是一个底层容器。其他组件必须添加到这个容器中,由它与操作系统进行联系其常用的方法有西南财经大学 前一页 课间休息

8、回目录西南财经大学 前一页 课间休息 回目录使用JFrame创建一个新窗口oimport java.awt.*;oimport javax.swing.JFrame;opublic class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个新的窗口);of.setSize(230,80);/of.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible(true);/让组件显示oo西南财经

9、大学 前一页 课间休息 回目录在窗口(框架)中添加按钮oimport java.awt.*;oimport javax.swing.*;opublic class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个新的窗口);oo f.add(new JButton(开户);/在窗体中添加按钮of.setSize(230,80);/of.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible

10、(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录标签组件JLabelJLable组件是一个标签,本身是用来显示信息的。一般是不能更改内容的。创建的Lable对象可以通过Container类的add()加入到容器中。JLable的常见方法有:西南财经大学 前一页 课间休息 回目录西南财经大学 前一页 课间休息 回目录例如oimport java.awt.*;oimport javax.swing.*;opublic class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个

11、新的窗口);ooJLabel lab = new JLabel(SWUFE,JLabel.CENTER);/实例化一个标签对象of.add(lab);o/f.add(new JButton(开户);/在窗体中添加按钮of.setSize(230,80);/of.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录在Conponent中取得容器对象,然后在容器中加入组件oimport java.awt.*;oimpor

12、t javax.swing.*;opublic class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个新的窗口);oContainer cont = f.getContentPane();/在窗体中取得一个容器oJLabel lab = new JLabel(SWUFE,JLabel.CENTER);/实例化一个标签对象ocont.add(lab); /在容器中加入组件Jlabelo/f.add(new JButton(开户);/在窗体中添加按钮of.setSize(230,80);/of

13、.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录更改Jlabel中的文字样式前面标签中的内容只是使用了默认的字体和颜色,如果要改变字体,则可以使用Component类中的setFont(Font f)方法。在 java.awt.Font类用来表示字体,其常见的操作方法和常量如下西南财经大学 前一页 课间休息 回目录oimport java.awt.*;oimport javax.swing.*;opublic

14、class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个新的窗口);oJLabel lab = new JLabel(SWUFE,JLabel.CENTER);/实例化一个标签对象oFont fnt = new Font(Serief,Font.ITALIC+Font.BOLD,28);olab.setFont(fnt);/ 设置标签的显示字体of.add(lab); /在容器中加入组件Jlabelof.setSize(230,80);/of.setBackground(Color.WHIT

15、E);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录在Jlabel中设置图片请参考相应的资料,就是在标签方法中的第7个方法西南财经大学 前一页 课间休息 回目录按钮组件JButtonJButton组件表示一个普通的按钮。可以直接在窗体中增加。JButton常见的方法有:西南财经大学 前一页 课间休息 回目录例如oimport java.awt.*;oimport javax.swing.*;opublic class JFramedemoopublic stati

16、c void main(String args)oJFrame f = new JFrame(创建一个新的窗口);oJButton but = new JButton(按我);/实例化一个按钮对象oFont fnt = new Font(Serief,Font.ITALIC+Font.BOLD,28);obut.setFont(fnt);/ 设置按钮的显示字体of.add(but); /在窗体中加入组件JButtonof.setSize(230,80);/of.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位

17、置of.setVisible(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录在按钮中显示图片oimport java.io.*;oimport java.awt.*;oimport javax.swing.*;opublic class JFramedemoopublic static void main(String args)oJFrame f = new JFrame(创建一个新的窗口);oooIcon icon = new ImageIcon(aa.gif);/实例化Icon对象ooJButton but = new JButton(icon);/实例化一个图像按

18、钮对象ooFont fnt = new Font(Serief,Font.ITALIC+Font.BOLD,28);obut.setFont(fnt);/ 设置按钮的显示字体oof.add(but); /在窗体中加入组件JButtonof.setSize(600,450);/of.setBackground(Color.WHITE);/设置背景颜色of.setLocation(300,200);/设置窗体的显示位置of.setVisible(true);/让组件显示ooo西南财经大学 前一页 课间休息 回目录布局管理器在JAVA中专门提供了布局管理器来管理组件,通过布局可以使用不同的方式排列组

19、件。在 Swing 中可以实现 LayoutManager接口,在Swing中常有5种布局管理器。FlowLayout 流水布局Borderlayout 东西南北布局 GirdlayoutCardlayout绝对定位西南财经大学 前一页 课间休息 回目录FlowLayout 属于流水布局,就像流水一样依次进行排列 FlowLayout类中常用方法和常量西南财经大学 前一页 课间休息 回目录例如 布局FlowLayoutoimport java.awt.*;oimport javax.swing.*;opublic class Flowlayoutdemoopublic static void

20、main(String args)oJFrame f = new JFrame(Welcome to java);of.setLayout(new FlowLayout(FlowLayout.CENTER,3,3);o/布局管理器为FlowLayout,所有组件居中,水平与垂直间距为3oJButton but = null;ofor (int i = 0 ;i= 9; i+)obut = new JButton(按钮+i);of.add(but);/加入按钮oof.setSize(750,200);/窗口大小of.setVisible(true);oo西南财经大学 前一页 课间休息 回目录东西

21、南北布局(BorderLayout)分为东西南北中五个区进行布局。常用方法有:西南财经大学 前一页 课间休息 回目录例如oimport java.awt.*;oimport javax.swing.*;opublic class Flowlayoutdemoopublic static void main(String args)oJFrame f = new JFrame(Welcome to java);of.setLayout(new BorderLayout(3,3);o/布局管理器为BorderLayout,所有组件居中,水平与垂直间距为3oJButton but = null;of

22、.add(new JButton(东),BorderLayout.EAST);of.add(new JButton(南),BorderLayout.SOUTH);of.add(new JButton(西),BorderLayout.WEST);of.add(new JButton(北),BorderLayout.NORTH);of.add(new JButton(中),BorderLayout.CENTER);of.pack();/依据组件自动调整窗口大小oof.setVisible(true);oo西南财经大学 前一页 课间休息 回目录GridLayout 表格形式进行管理西南财经大学 前一

23、页 课间休息 回目录CardLayout 重叠布局,像卡片一样西南财经大学 前一页 课间休息 回目录文本组件文本组件分为(1)单行文本组件(2)密码文本组件(3)多行文本组件西南财经大学 前一页 课间休息 回目录单行文本组件 (JTextField)主要方法:西南财经大学 前一页 课间休息 回目录例如oimport java.awt.*;oimport javax.swing.*;opublic class Flowlayoutdemoopublic static void main(String args)oJFrame f = new JFrame(Welcome to java);of.

24、setLayout(new GridLayout(2,2);o/布局管理器为GirdLAyout,2行,2 列oJTextField name = new JTextField(30);/文本框并指定长度oJTextField noed = new JTextField(aaaaa,10);/指定名字和长度oJLabel namelab = new JLabel(请输入名字:);/标签oJLabel noedlab = new JLabel(不可编辑的文本);onoed.setEnabled(false);/此文本框不可编辑of.add(namelab);of.add(name);of.add

25、(noedlab);of.add(noed);of.pack();/依据组件自动调整窗口大小oof.setVisible(true);oo西南财经大学 前一页 课间休息 回目录密文输入组件(JPasswordField)可以使用密文方式回显输入内容方法西南财经大学 前一页 课间休息 回目录例如oimport java.awt.*;oimport javax.swing.*;opublic class Flowlayoutdemoopublic static void main(String args)oJFrame f = new JFrame(Welcome to java);of.setL

26、ayout(new GridLayout(2,2);o/布局管理器为GirdLAyout,2行,2 列oJLabel namelab = new JLabel(请输入名字:);/标签oJLabel passwordlab = new JLabel(密码:);oof.add(namelab);/标签of.add(new JTextField(30);/文本of.add(passwordlab);of.add(new JPasswordField();/密文oof.pack();/依据组件自动调整窗口大小oof.setVisible(true);oo西南财经大学 前一页 课间休息 回目录多行文本输

27、入组件实现多行输入JTextArea,常用方法有:西南财经大学 前一页 课间休息 回目录oimport java.awt.*;oimport javax.swing.*;opublic class Flowlayoutdemoopublic static void main(String args)oJFrame f = new JFrame(Welcome to java);of.setLayout(new FlowLayout();o/布局管理oJLabel namelab = new JLabel(备注:);/标签ooof.add(namelab);/标签of.add(new JText

28、Area(5,10);/多行(5行10列)文本oof.pack();/依据组件自动调整窗口大小oof.setVisible(true);oo西南财经大学 前一页 课间休息 回目录其他,请参考教材(选择组件,单选按钮,下拉菜单等)常用组件综合举例西南财经大学 前一页 课间休息 回目录Comp.javaoimport java.awt.*;oimport javax.swing.*;oimport static javax.swing.JFrame.*;opublic class comp extends JFrameooJTextField text;/文本oJButton button;/按钮

29、oJCheckBox checkbox1,checkbox2,checkbox3;/选择oJRadioButton radio1,radio2;/下拉菜单oButtonGroup group;/按钮组oJComboBox combox;oJTextArea area;opublic comp()oinit();osetVisible(true);osetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);oovoid init()osetLayout(new FlowLayout();oadd(new JLabel(文本框);otext = new JTex

30、tField(10);oadd(text);oadd(new JLabel(确定);obutton = new JButton(确定);oadd(button);oadd(new JLabel(选择框);ocheckbox1 = new JCheckBox(音乐);ocheckbox2 = new JCheckBox(旅游);ocheckbox3 = new JCheckBox(篮球);oadd(checkbox1);oadd(checkbox2);oadd(checkbox3);oadd(new JLabel(单选按钮);ogroup = new ButtonGroup();oradio1

31、= new JRadioButton(男);oradio2 = new JRadioButton(女);ogroup.add(radio1);ogroup.add(radio2);oadd(radio1);oadd(radio2);oadd(new JLabel(下拉菜单);ocombox = new JComboBox();ocombox.addItem(音乐天地);ocombox.addItem(武术天地);ocombox.addItem(象棋天地);oadd(combox);oadd(new JLabel(多行文本区);oarea = new JTextArea(6,12);oadd(n

32、ew JScrollPane(area); ooo西南财经大学 前一页 课间休息 回目录测试程序 compentdemo.javaopublic class componentdemoopublic static void main(String args)ocomp win = new comp();owin.setBounds(100,100,310,260);owin.setTitle(常用组件);oo西南财经大学 前一页 课间休息 回目录组件示例2import java.awt.*;import javax.swing.*;public class Form01 extends JFr

33、ameForm01()this.setSize(500,200);this.setTitle(XXX);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLayout(new FlowLayout(FlowLayout.CENTER,70,15);this.add(new JLabel(ID);this.add(new JTextField(20);this.add(new JLabel(PW);this.add(new JTextField(20);this.add(new JButton(Enter);this.add(new JBu

34、tton(Reset);this.setVisible(true);public static void main(String args)new Form01();西南财经大学 前一页 课间休息 回目录事件处理一个图形界面制作完成以后,要想每个组件发挥自己的作用,就必须对事件进行处理,实际上,每个组件都有相应的事件。事件就是表示一个对象发生状态变化。例如,按下按钮,实际上按钮已经发生变化,此时就产生一个事件,就需要事件监听者不断监听事件的变化,并进行相应处理。事件的处理流程:西南财经大学 前一页 课间休息 回目录ActionEvent事件1 事件源文本框,按钮,菜单,密码等组件都可以触发 A

35、ctionEvent事件。2 注册监视器 能触发ActionEvent事件的组件,使用 addActionListener(ActionLisener listen),将实现ActionListener接口的类。3 接口ActionListener接口在Java.awt.event包中,该接口只有一个方法actionPerformed(ActionEvent e)执行过程事件源触发后,监视器触发ActionEvent 事件,调用接口中的方法 actionPerformed(ActionEvent e) 对事件进行处理。西南财经大学 前一页 课间休息 回目录事件示例程序 example5.jav

36、aopublic class example5opublic static void main(String args)oWin win = new Win();owin.setBounds(100,100,300,260);owin.setTitle(事件处理);oo西南财经大学 前一页 课间休息 回目录Win.javaoimport java.awt.*;oimport javax.swing.*;opublic class Win extends JFrameoJTextField text;oReaderListen listener;opublic Win()oinit();oset

37、Visible(true);osetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);oovoid init()osetLayout(new FlowLayout();otext = new JTextField(10);olistener = new ReaderListen();otext.addActionListener(listener);o/text是事件源,listener是监视器,执行的是ReaderListen类中的actionPerformed方法o add(text);/加入oo西南财经大学 前一页 课间休息 回目录ReaderLis

38、ten.javaoimport java.awt.event.*;oimport java.io.*;opublic class ReaderListen implements ActionListeneropublic void actionPerformed(ActionEvent e)oString filename = e.getActionCommand();oSystem.out.println(filename+内容如下:);otryoFile file = new File(filename);oFileReader inOne = new FileReader(file);oBufferedReader intwo = new BufferedReader(inOne);oString s = null;owhile(s = intwo.readLine()!= null)oSystem.out.println(s);ooinOne.close();ointwo.close();ocatch(Exception ee)oSystem.out.println(ee.toString();oooo西南财经大学 前一页 课间休息 回目录事件监视示例2oimport j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论