ja 程序设计 第13章_第1页
ja 程序设计 第13章_第2页
ja 程序设计 第13章_第3页
ja 程序设计 第13章_第4页
ja 程序设计 第13章_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、swing包的特点包的特点 jdk1.2以后在支持以后在支持javax.swing包包 swing包在图形界面设计上比包在图形界面设计上比awt更丰富,更美更丰富,更美观。观。swing拥有拥有4倍于倍于awt的用户界面组件。的用户界面组件。 是是awt包基础上的扩展,在很多情况下在包基础上的扩展,在很多情况下在awt包的部件前加上字母包的部件前加上字母j即为即为swing部件的名称,如:部件的名称,如:jframe、japplet、jbutton等。等。 jframe 在在jframe中不能直接调用中不能直接调用add方法加入部件,而方法加入部件,而是要通过是要通过getcontentpan

2、e获得一个容器获得一个容器(container)对象,再调用这个容器对象的)对象,再调用这个容器对象的add 方法加入其它部件。这点是所有方法加入其它部件。这点是所有swing的容器部的容器部件均有的特性件均有的特性 在在jframe中可以设置用户关闭窗体时在执行中可以设置用户关闭窗体时在执行windowclosing()方法后的默认处理操作。如果没方法后的默认处理操作。如果没有注册窗体关闭处理,也将执行默认处理操作。有注册窗体关闭处理,也将执行默认处理操作。 默认处理操作的设置方法默认处理操作的设置方法void setdefaultcloseoperation(int operation)

3、其中参数其中参数operation为一个整数,可以是以下常量:为一个整数,可以是以下常量: do_nothing_on_close:不做任何处理;不做任何处理; hide_on_close: 为默认处理情形,自动隐藏窗为默认处理情形,自动隐藏窗体。体。 dispose_on_close:自动隐藏和关闭窗体。自动隐藏和关闭窗体。 exit_on_close: 仅用于应用程序中,关闭窗体、仅用于应用程序中,关闭窗体、结束程序运行。结束程序运行。 例例13-1一个简单的演示一个简单的演示 import java.awt.*; import javax.swing.*; import java.awt

4、.event.*;public class contentdemo public static void main(string args) jframe f = new jframe(demo); container cont=f.getcontentpane(); cont.setlayout(new flowlayout(); for (int i=1;i=8;i+) cont.add(new jbutton(button #+i); f.setsize(300,300); f.setvisible(true); f.addwindowlistener(new windowadapter

5、() public void windowclosing(windowevent e) system.out.println(execute windowclosing ); ); f.setdefaultcloseoperation(jframe.exit_on_close); 等级考试试题等级考试试题/打印无符号整数位打印无符号整数位import java.awt.*;import java.awt.event.*;import javax.swing.*; public class java_3 extends jframe public java_3() super( 打印无符号整数位

6、打印无符号整数位 ); container c = getcontentpane(); c.setlayout( new flowlayout() ); c.add( new jlabel( 请输入整数请输入整数: ) ); final jtextfield output = new jtextfield( 33 ); jtextfield input = new jtextfield( 10 ); input.addactionlistener( new actionlistener() public void actionperformed( actionevent e ) int val

7、 = integer.parseint( e.getactioncommand() ); output.settext( getbits( val ) ); ); c.add( input ); c.add( new jlabel( 该数的二进制位表示是该数的二进制位表示是 ) ); output.seteditable( false ); /*found* c.add( _ ); setsize( 720, 70 ); show(); private string getbits( int value ) int displaymask = 1 31; stringbuffer buf =

8、new stringbuffer( 35 ); for ( int c = 1; c = 32; c+ ) buf.append( ( value & displaymask ) = 0 ? 0 : 1 ); value 1) / 左上角的点左上角的点 g.filloval(x+3, y+3, 9, 9); if (val 3) / 右上角的点右上角的点 g.filloval(x+23, y+3, 9, 9); 例例13-2:续续2 if (val = 6) / 中间左边的点中间左边的点 g.filloval(x+3, y+13, 9, 9); if (val % 2 = 1) / 正

9、中央正中央 g.filloval(x+13, y+13, 9, 9); if (val = 6) / 中间右边的点中间右边的点 g.filloval(x+23, y+13, 9, 9); if (val 3) / 底部左边的点底部左边的点 g.filloval(x+3, y+23, 9, 9); if (val 1) / 底部右边的点底部右边的点 g.filloval(x+23, y+23, 9,9); 例例13-2:续续3 class mypanel extends jpanel public void paintcomponent(graphics g) super.paintcompon

10、ent(g); /调用父类方法绘调用父类方法绘制背景制背景 draw(g, value1, 10, 10); /在在10,10位置绘制筛子位置绘制筛子 draw(g, value2, 120, 10); /在在120,10位置绘制筛位置绘制筛子子 例例13-2:续续413.2.3 swing中的按钮和标签中的按钮和标签 标签和各种按钮均允许设置图标标签和各种按钮均允许设置图标 构造方法的一种:构造方法的一种: jlabel(string str,icon icon,int align) 也可以在创建了标签对象后通过也可以在创建了标签对象后通过seticon方法设置标方法设置标签的图标。签的图标

11、。 void seticon(icon icon) 在所有图形部件的父类在所有图形部件的父类jcomponent类中定义了如下类中定义了如下方法:方法: void settooltiptext(string text) 功能:设置鼠标移到部件上时的提示文字。功能:设置鼠标移到部件上时的提示文字。 例例13-3 用户登录界面设计用户登录界面设计 import java.awt.*; import javax.swing.*; public class contentdemo extends jframe jtextfield username; jpasswordfield password;

12、jbutton login,register; public contentdemo() super(login frame); container cont=getcontentpane(); cont.setlayout(new gridlayout(3,2); cont.add(new jlabel(username:); username=new jtextfield(10); cont.add(username); cont.add(new jlabel(password:); password=new jpasswordfield(10); cont.add(password);

13、login=new jbutton(new imageicon(enter.gif); register=new jbutton(new imageicon(register.gif); cont.add(login); cont.add(register); setsize(200,200); setvisible(true); public static void main(string args) new contentdemo(); jscroolpane容器容器 例例13-4 在文本域中显示拆分结果。在文本域中显示拆分结果。 import java.awt.*; import jav

14、ax.swing.*; public class factorial extends japplet public void init() string output=; jtextarea outputarea = new jtextarea(10,50); jscrollpane scroll=new jscrollpane(outputarea); container container = getcontentpane(); container.add(scroll); for(long i=0; i=10; i+) output += + i + ! = + fac(i) +n; o

15、utputarea.append(output); public long fac(long no) 求求n的阶乘的阶乘 . 工具栏工具栏 -jtollbar import java.awt.*; import javax.swing.*; public class toolbardemo extends japplet public void init() container cont=getcontentpane(); cont.setlayout(new borderlayout(); jtoolbar tool=new jtoolbar(); image myimage = getim

16、age(getdocumentbase(), open.gif); jbutton open = new jbutton(new imageicon(myimage); myimage = getimage(getdocumentbase(), folder.gif ); jbutton mail=new jbutton(new imageicon(myimage); tool.add(open); tool.add(mail); cont.add(north,tool); jscrollpane scroll=new jscrollpane(new jtextarea(); cont.add

17、(center, scroll); joptionpane对话框对话框 joptionpane的对话框可分为四类:的对话框可分为四类: showmessagedialog : 向用户显示一些消息;向用户显示一些消息; showinputdialog : 提示用户进行输入;提示用户进行输入; showconfirmdialog : 向用户确认,含向用户确认,含yes/no/cancel响应;响应; showoptiondialog : 选项对话框,该对话框是选项对话框,该对话框是前面几种形态的综合。前面几种形态的综合。对话框的外观对话框的外观 显示消息对话框显示消息对话框showmessaged

18、ialog 格式:格式:static void showmessagedialog(component parentcomponent, object message, string title, int messagetype, icon icon) 其中,其中, 参数参数1定义对话框的父窗体,如果该参数为定义对话框的父窗体,如果该参数为null,一个运行一个运行java程序的默认窗体作为父窗体,并且程序的默认窗体作为父窗体,并且在父窗体中居中显示对话框;在父窗体中居中显示对话框; 参数参数2为消息内容,可以是任何存放数据的部件或为消息内容,可以是任何存放数据的部件或数据对象本身;数据对象本

19、身; 参数参数3为对话框的标题;为对话框的标题; 参数参数4为消息类型,内定的消息类型包括:为消息类型,内定的消息类型包括: error_message(错误消息)(错误消息) information_message(信息)(信息) warning_message(警告消息)(警告消息) question_message(询问消息)(询问消息) plain_message(一般消息);(一般消息); 参数参数5为显示图标,缺少该参数时,根据消息类型为显示图标,缺少该参数时,根据消息类型有默认的显示图标。有默认的显示图标。提示输入对话框提示输入对话框showinputdialog 格式格式1:s

20、tatic string showinputdialog(object message) 最复杂的形态涉及最复杂的形态涉及7个参数,分别表示父窗体、消个参数,分别表示父窗体、消息、标题、消息类型、图标、可选值、初始值。息、标题、消息类型、图标、可选值、初始值。 static object showinputdialog(component parentcomponent, object message, string title, int messagetype, icon icon, object selectionvalues, object initialselectionvalue)确

21、认对话框确认对话框showconfirmdialog 最简单只包含两个参数。最简单只包含两个参数。格式:格式:static int showconfirmdialog(component parentcomponent, object message) 该对话框显示时包含该对话框显示时包含3个选项个选项yes, no and cancel,标题默认为标题默认为select an option。 最复杂的形式有最复杂的形式有6个参数,具体格式如下:个参数,具体格式如下:static int showconfirmdialog(component parentcomponent, object m

22、essage, string title, int optiontype, int messagetype, icon icon)选项对话框选项对话框showoptiondialog 格式:格式:static int showoptiondialog(component parentcomponent, object message, string title, int optiontype, int messagetype, icon icon, object options, object initialvalue) 使用举例:使用举例:object options = ok, cance

23、l ;joptionpane.showoptiondialog(null, click ok to continue, warning,joptionpane.default_option, joptionpane.warning_message,null, options, options0); 显示一个警告对话框,包括显示一个警告对话框,包括 ok, cancel两个选项两个选项, 标题标题为为“warning”,显示消息为显示消息为 “click ok to continue”。等级考试上机题等级考试上机题 import javax.swing.joptionpane; public c

24、lass java_1 public static void main( string args ) /变量初始化变量初始化 int passes = 0, /考生通过的数目考生通过的数目 failures = 0, /考生不通过的数目考生不通过的数目 student = 1, /学生计数器学生计数器 result; /一门考生结果一门考生结果 string input, /用户输入的值用户输入的值 output; /输出字符串输出字符串 /处理处理10名学生名学生,用计数器控制循环用计数器控制循环 while ( student 8 ) output = output + n提高学费提高学费

25、; /*found* joptionpane._ ( null, output, 对考试结果的分析示例对考试结果的分析示例, joptionpane.information_message ); /*found* system._( 0 ); 等级考试试题等级考试试题2 import javax.swing.*;public class java_2 public static void main( string args ) int frequency1 = 0, frequency2 = 0, frequency3 = 0, frequency4 = 0, frequency5 = 0,

26、frequency6 = 0, face; /骰子旋转骰子旋转500次的代码次的代码 for ( int roll = 1; roll = 500; roll+ ) face = 1 + (int) ( math.random() * 6 ); /*found* switch ( _ ) case 1: +frequency1; break; case 2: +frequency2; break; case 3: +frequency3; break; case 4: +frequency4; break; case 5: +frequency5; break; case 6: +freque

27、ncy6; break; /*found* jtextarea outputarea = _ jtextarea( 7, 10 ); outputarea.settext( 面面t频率频率 + n1t + frequency1 + n2t + frequency2 + n3t + frequency3 + n4t + frequency4 + n5t + frequency5 + n6t + frequency6 );/*found* joptionpane.showmessagedialog( null, _, 骰子旋转骰子旋转500次次, joptionpane.information_m

28、essage );/*found* system._( 0 ); 颜色对话框颜色对话框 在在jcolorchooser类中有一个静态方法可以弹出对类中有一个静态方法可以弹出对话框选择颜色。具体格式如下:话框选择颜色。具体格式如下: static color showdialog(component component, string title, color initialcolor) 其中,参数其中,参数component指出对话框依赖的组件,指出对话框依赖的组件,title为对话框的标题,为对话框的标题,initialcolor指定对话框显指定对话框显示时的初始颜色设置。示时的初始颜色设置

29、。例例13-7 给围棋棋盘背景选择颜色给围棋棋盘背景选择颜色 change=new jbutton(改变背景改变背景); cont.add(south,change); change.addactionlistener(new actionlistener() public void actionperformed(actionevent e) color boardcolor=jcolorchooser.showdialog(simplechess.this, 棋盘棋盘颜色颜色, chessboard.getbackground();chessboard.setbackground(boar

30、dcolor); );13.2.7选项卡选项卡 -jtabbedpane 通过通过addtab方法可以给选项卡中添加选项,该方方法可以给选项卡中添加选项,该方法有多种形态,以下为常用形式:法有多种形态,以下为常用形式: void addtab(string title, component component)在选项卡中增加一个用标题代表的部件,无图标。在选项卡中增加一个用标题代表的部件,无图标。 void addtab(string title, icon icon, component component)在选项卡中增加一个部件,该选项通过标题、图标在选项卡中增加一个部件,该选项通过标题、图标表示,其中,标题和图标可以存在,也可以某个表示,其中,标题和图标可以存在,也可以某个为为null。点击选项卡的会发生状态改变事件点击选项卡的会发生状态改变事件 首先必须首先必须注册注册changelistener监听者监听者。void addchangelistener(changelistener l) 在监听者的类设计中必须实现在监听者的类设计中必须实现changelistener接接口,也就是要编写如下处理方法:口,也就是要编写如下处理方法:publ

温馨提示

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

评论

0/150

提交评论