java程序设计第13章.ppt

上传人:sccc 文档编号:5155638 上传时间:2023-06-09 格式:PPT 页数:40 大小:148KB
返回 下载 相关 举报
java程序设计第13章.ppt_第1页
第1页 / 共40页
java程序设计第13章.ppt_第2页
第2页 / 共40页
java程序设计第13章.ppt_第3页
第3页 / 共40页
java程序设计第13章.ppt_第4页
第4页 / 共40页
java程序设计第13章.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《java程序设计第13章.ppt》由会员分享,可在线阅读,更多相关《java程序设计第13章.ppt(40页珍藏版)》请在三一办公上搜索。

1、Swing包的特点,JDK1.2以后在支持javax.swing包 Swing包在图形界面设计上比AWT更丰富,更美观。Swing拥有4倍于AWT的用户界面组件。是AWT包基础上的扩展,在很多情况下在AWT包的部件前加上字母J即为Swing部件的名称,如:JFrame、JApplet、JButton等。,痛镊扰柑恕杖掷纲卸鹤硒骂失孕穆伦薛尿寐刽咱谜印绚闰起窘鬼袜赫勉掷java 程序设计 第13章java 程序设计 第13章,JFrame,在JFrame中不能直接调用add方法加入部件,而是要通过getContentPane获得一个容器(Container)对象,再调用这个容器对象的add 方法

2、加入其它部件。这点是所有Swing的容器部件均有的特性 在JFrame中可以设置用户关闭窗体时在执行windowClosing()方法后的默认处理操作。如果没有注册窗体关闭处理,也将执行默认处理操作。,坡囚辛程茁虱瘤辙跪榆馅敢雁淀瘁莱拾霸砾负惟引嫂绢呜价锌霹郸搏富窘java 程序设计 第13章java 程序设计 第13章,默认处理操作的设置方法,void setDefaultCloseOperation(int operation)其中参数operation为一个整数,可以是以下常量:DO_NOTHING_ON_CLOSE:不做任何处理;HIDE_ON_CLOSE:为默认处理情形,自动隐藏窗体

3、。DISPOSE_ON_CLOSE:自动隐藏和关闭窗体。EXIT_ON_CLOSE:仅用于应用程序中,关闭窗体、结束程序运行。,姿禄阅菇售毅头渔浇残娟坷圈烂营参驼隘醛阅劲殖骂肤督霄格粘钞署烛涝java 程序设计 第13章java 程序设计 第13章,例13-1一个简单的演示,import java.awt.*;import javax.swing.*;import java.awt.event.*;public class ContentDemo public static void main(String args)JFrame f=new JFrame(Demo);Container co

4、nt=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()public void windowClosing(WindowEvent e)System.out.println(execute windowClosing););f.setDefaultCloseOperation(JFrame.

5、EXIT_ON_CLOSE);,颇妆规捶酷堵胁译乙缸集后身参璃牢热扫摇汕吩囊俗况厚浊暑骨椽粕受锌java 程序设计 第13章java 程序设计 第13章,等级考试试题,/打印无符号整数位import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Java_3 extends JFrame public Java_3()super(打印无符号整数位);Container c=getContentPane();c.setLayout(new FlowLayout();c.add(new JLabel(请输入

6、整数:);final JTextField output=new JTextField(33);JTextField input=new JTextField(10);,贿推烹镇与块涉伐涟缸滁央范昼链驼筒梗妖就垣膨撂蚊孕孜蓝菇漾缚巡类java 程序设计 第13章java 程序设计 第13章,input.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int val=Integer.parseInt(e.getActionCommand();output.setText(getBits

7、(val););c.add(input);c.add(new JLabel(该数的二进制位表示是);output.setEditable(false);/*Found*c.add(_);setSize(720,70);show();,拆彼卯杆戌数聋惧仑养付笛柱肤悉慑蓑胸辆雨辉踢聘殷俏曳疚骂萄迷志书java 程序设计 第13章java 程序设计 第13章,private String getBits(int value)int displayMask=1 31;StringBuffer buf=new StringBuffer(35);for(int c=1;c=32;c+)buf.append

8、(value,带恢堕划胎赊奶这簿技杜敬魁遇锌旋峪栖纸添峰啪秧挤齐幂澳蠕屁侗优寂java 程序设计 第13章java 程序设计 第13章,public static void main(String args)Java_3 app=new Java_3();app.addWindowListener(new WindowAdapter()/*Found*public void windowClosing(_ e)System.exit(0););,罐县越丸窍词谣矩瘦剑冶窒斤掺翟噪喇吵变胶层惭喊已套母布钮嘶骇桂嗓java 程序设计 第13章java 程序设计 第13章,13.2.2 JApplet

9、,若Applet中包含Swing构件,则必须继承JApplet类。JApplet是顶层Swing容器,包含一个根面板,根面板中包含一个内容面板,内容面板中可以加入除了菜单条之外的所有Swing构件。对JApplet进行布局管理是针对内容面板,而不是JApplet。向JApplet中添加构件,不能直接添加,而是添加到内容面板。JApplet的默认布局管理器是BorderLayout,而Applet的默认布局管理器是FlowLayout。,扯忻刨井筐抽骏喻莱绸琢掌嘻赏痴簧狈旦寥瑚明军棕兼贝请陀虽磺亲拄拆java 程序设计 第13章java 程序设计 第13章,例13-2:投掷筛子的程序。,impo

10、rt java.awt.*;import java.awt.event.*;import javax.swing.*;public class ClickableDice extends JApplet int value1=4;/筛子的初始点数.int value2=4;/筛子的初始点数.MyPanel dice;public void init()dice=new MyPanel();setContentPane(dice);/设置创建的面板为内容面板 JButton b=new JButton(push me);dice.setLayout(new BorderLayout();dice

11、.add(South,b);,七铜造谬毡茎胞喇述硫治诵迫校羞众已澜影讯唾抑奋炭咨预链药状俏八逗java 程序设计 第13章java 程序设计 第13章,b.addActionListener(new ActionListener()public void actionPerformed(ActionEvent evt)value1=(int)(Math.random()*6)+1;value2=(int)(Math.random()*6)+1;dice.repaint(););,例13-2:续1,哥沸偏合车的色槛掏泵网掇删歼抢负磷旧链误飞侄蚕卖愚我漓呕窃腋县早java 程序设计 第13章jav

12、a 程序设计 第13章,void draw(Graphics g,int val,int x,int y)/绘制筛子上面的点 g.setColor(Color.white);g.fillRect(x,y,35,35);/筛子画面清除 g.setColor(Color.black);g.drawRect(x,y,34,34);/绘制筛子边框 if(val 1)/左上角的点 g.fillOval(x+3,y+3,9,9);if(val 3)/右上角的点 g.fillOval(x+23,y+3,9,9);,例13-2:续2,最榨汪眯摊毒柱钱焉硒漆眼报音窖糙糯钩徘怠饭泄傻架咒棵悬方翱斑辟恫java 程

13、序设计 第13章java 程序设计 第13章,if(val=6)/中间左边的点 g.fillOval(x+3,y+13,9,9);if(val%2=1)/正中央 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,痴伍唐鞘昏谓易钻蔚哲淬现傍抖劳肿耻法劣罩贷肠阁潦奖禹视材未烷姑表java 程序设计 第13章java 程序设计

14、 第13章,class MyPanel extends JPanel public void paintComponent(Graphics g)super.paintComponent(g);/调用父类方法绘制背景 draw(g,value1,10,10);/在10,10位置绘制筛子 draw(g,value2,120,10);/在120,10位置绘制筛子,例13-2:续4,媳阜厉糠宦陌慑蒋缅拥前灾旗挤习界怨氦食比修啪蚌亭邑盒庙港狠速犬连java 程序设计 第13章java 程序设计 第13章,13.2.3 Swing中的按钮和标签 标签和各种按钮均允许设置图标,构造方法的一种:JLabel

15、(String str,Icon icon,int align)也可以在创建了标签对象后通过setIcon方法设置标签的图标。void setIcon(Icon icon)在所有图形部件的父类JComponent类中定义了如下方法:void setToolTipText(String text)功能:设置鼠标移到部件上时的提示文字。,强变职弃姬汁词拱衷墩边瞳趣溺鹿贝尝怔诞普霸政狡辗博瘁帅昨趋带薯氓java 程序设计 第13章java 程序设计 第13章,例13-3 用户登录界面设计,import java.awt.*;import javax.swing.*;public class Cont

16、entDemo extends JFrame JTextField username;JPasswordField password;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(passwo

17、rd:);password=new JPasswordField(10);cont.add(password);,辩博幕鳖鬃畔替蔚彻嗣读泞埃敬臂映掺重金烷埠栓男否遏哑喘逾袱餐疹夏java 程序设计 第13章java 程序设计 第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 ma

18、in(String args)new ContentDemo();,塘令喜夜镊俭仕醚严帛舷谗赘揪喂逊镁颈材雏爸哟癣遍耪缮诬堑阂蜒姓霉java 程序设计 第13章java 程序设计 第13章,JScroolPane容器,例13-4在文本域中显示拆分结果。import java.awt.*;import javax.swing.*;public class factorial extends JApplet public void init()String output=;JTextArea outputarea=new JTextArea(10,50);JScrollPane scroll=ne

19、w JScrollPane(outputarea);Container container=getContentPane();container.add(scroll);for(long i=0;i=10;i+)output+=+i+!=+fac(i)+n;outputarea.append(output);public long fac(long no)求n的阶乘.,厂坷晨滤扩档闰除肛洗惹买彤杂普邓驰佃摄舜吵班寐瞧琉挤匣蛇且腮励玉java 程序设计 第13章java 程序设计 第13章,工具栏-JTollbar,import java.awt.*;import javax.swing.*;p

20、ublic class ToolBarDemo extends JApplet public void init()Container cont=getContentPane();cont.setLayout(new BorderLayout();JToolBar tool=new JToolBar();Image myImage=getImage(getDocumentBase(),open.gif);JButton open=new JButton(new ImageIcon(myImage);myImage=getImage(getDocumentBase(),folder.gif);J

21、Button mail=new JButton(new ImageIcon(myImage);tool.add(open);tool.add(mail);cont.add(North,tool);JScrollPane scroll=new JScrollPane(new JTextArea();cont.add(Center,scroll);,轴怠涂拘又慈侩九菩炽乎熟咨丢寸习化晚肛诗秒降抖红兜亏殉去袄盎豆喇java 程序设计 第13章java 程序设计 第13章,JOptionPane对话框,JoptionPane的对话框可分为四类:ShowMessageDialog:向用户显示一些消息;s

22、howInputDialog:提示用户进行输入;showConfirmDialog:向用户确认,含yes/no/cancel响应;showOptionDialog:选项对话框,该对话框是前面几种形态的综合。,销捶舱尔瑶杆扑社访蒸掘将培象泼斩坎链矗拓比诧之谜撕畴佳霄取伺渭客java 程序设计 第13章java 程序设计 第13章,对话框的外观,炳裁笆砂陕样闲灯犯芳函贼酪仟搅谚必淆倡鸥渗尔曙传蛹费穿隔潮治延鸦java 程序设计 第13章java 程序设计 第13章,显示消息对话框showMessageDialog,格式:static void showMessageDialog(Component

23、 parentComponent,Object message,String title,int messageType,Icon icon)其中,参数1定义对话框的父窗体,如果该参数为null,一个运行Java程序的默认窗体作为父窗体,并且在父窗体中居中显示对话框;参数2为消息内容,可以是任何存放数据的部件或数据对象本身;参数3为对话框的标题;,末源摊绩贴柿做钢牢袱毒戍况增顶扩大磷睁冷撰邪榴蝇峙猜茧荡咙徐骨者java 程序设计 第13章java 程序设计 第13章,参数4为消息类型,内定的消息类型包括:ERROR_MESSAGE(错误消息)INFORMATION_MESSAGE(信息)WAR

24、NING_MESSAGE(警告消息)QUESTION_MESSAGE(询问消息)PLAIN_MESSAGE(一般消息);参数5为显示图标,缺少该参数时,根据消息类型有默认的显示图标。,胖宫能裳承菠南挠瓣砧抓尉投尔迟轮樊神乳壤驮喉泰贴禄咸掳宋削炯冕牢java 程序设计 第13章java 程序设计 第13章,提示输入对话框showInputDialog,格式1:static String showInputDialog(Object message)最复杂的形态涉及7个参数,分别表示父窗体、消息、标题、消息类型、图标、可选值、初始值。static Object showInputDialog(Co

25、mponent parentComponent,Object message,String title,int messageType,Icon icon,Object selectionValues,Object initialSelectionValue),毕衙肄苑汾吧消寝牡庙孝矗庐测拷姚惦隙估察驹伙倒田戒魏焚刷款凿鹊洋java 程序设计 第13章java 程序设计 第13章,确认对话框showConfirmDialog,最简单只包含两个参数。格式:static int showConfirmDialog(Component parentComponent,Object message)该

26、对话框显示时包含3个选项Yes,No and Cancel,标题默认为Select an Option。最复杂的形式有6个参数,具体格式如下:static int showConfirmDialog(Component parentComponent,Object message,String title,int optionType,int messageType,Icon icon),嘻积睹啦碘鹿秃页恋距抛乙撮讶缆府唐渤咒墅钾迪度华咒荒野讲抽移凝侮java 程序设计 第13章java 程序设计 第13章,选项对话框showOptionDialog,格式:static int showOpt

27、ionDialog(Component parentComponent,Object message,String title,int optionType,int messageType,Icon icon,Object options,Object initialValue)使用举例:Object options=OK,CANCEL;JOptionPane.showOptionDialog(null,Click OK to continue,Warning,JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,options

28、,options0);显示一个警告对话框,包括 OK,CANCEL两个选项,标题为“Warning”,显示消息为“Click OK to continue”。,媒评膏逛破菌履锯苗骡愁挥掺床夜吕辛嘴淫院谜阉衅蹄辣蚤魔锑阿唤扦一java 程序设计 第13章java 程序设计 第13章,等级考试上机题,import javax.swing.JOptionPane;public class Java_1 public static void main(String args)/变量初始化 int passes=0,/考生通过的数目 failures=0,/考生不通过的数目 student=1,/学生计

29、数器 result;/一门考生结果 String input,/用户输入的值 output;/输出字符串,咯凸凉班啊壳只深末履担肯语卷迅丈衅惧颓圃耳富蹿找己炎睁锹谈抠猿议java 程序设计 第13章java 程序设计 第13章,/处理10名学生,用计数器控制循环 while(student=10)input=JOptionPane.showInputDialog(输入结果(1=通过,2=不通过);/*Found*result=Integer._(input);if(result=1)passes=passes+1;else failures=failures+1;student=student

30、+1;,产戎怎唱碰副歇竟宇迷烂悯小拔苞甥乘赴懊惹锋保饲瀑椰抬私锯裸西于池java 程序设计 第13章java 程序设计 第13章,/结果处理 output=通过:+passes+n不通过:+failures;if(passes 8)output=output+n提高学费;/*Found*JOptionPane._(null,output,对考试结果的分析示例,JOptionPane.INFORMATION_MESSAGE);/*Found*System._(0);,焊陈哟阂辅具教钙寥弱棺弘骋探柔胖适问汲踢也眼这峻穆绿氨结谆宦您杂java 程序设计 第13章java 程序设计 第13章,等级考试

31、试题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,frequency6=0,face;/骰子旋转500次的代码 for(int roll=1;roll=500;roll+)face=1+(int)(Math.random()*6);/*Found*switch(_)case 1:+frequency1;break;,澎尊髓彻所宝娃夷躲细抚莆敞拢悦饿

32、痪箔掏兼坏桅导挚刘缝掇纪剐馅互嚼java 程序设计 第13章java 程序设计 第13章,case 2:+frequency2;break;case 3:+frequency3;break;case 4:+frequency4;break;case 5:+frequency5;break;case 6:+frequency6;break;,犀锨卿酸捆帧佳眷喘牵堵乌字猿酸露沂孩脑武秆开丝朵二茂戮妒景例形奏java 程序设计 第13章java 程序设计 第13章,/*Found*JTextArea outputArea=_ JTextArea(7,10);outputArea.setText(面t

33、频率+n1t+frequency1+n2t+frequency2+n3t+frequency3+n4t+frequency4+n5t+frequency5+n6t+frequency6);,孺凋估恢框休诌锗啦扁芳握侯闪甸藻泥铭肪骂眺呜囊勉圭欺两慕种侨所邻java 程序设计 第13章java 程序设计 第13章,/*Found*JOptionPane.showMessageDialog(null,_,骰子旋转500次,JOptionPane.INFORMATION_MESSAGE);/*Found*System._(0);,支祷饵芦痰坠疟辩靳茨富淮恫棕胎佃掳墒砍殴皇远挤想篷茶学苦削待嘴窟java

34、 程序设计 第13章java 程序设计 第13章,颜色对话框,在JColorChooser类中有一个静态方法可以弹出对话框选择颜色。具体格式如下:static Color showDialog(Component component,String title,Color initialColor)其中,参数component指出对话框依赖的组件,title为对话框的标题,initialColor指定对话框显示时的初始颜色设置。,闸但垦言殉敢嘴娃镀相踞宴煽疡守怂嗽碾黑紧矫跃冶税慧当翰展纺娄她痈java 程序设计 第13章java 程序设计 第13章,例13-7 给围棋棋盘背景选择颜色,chang

35、e=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(boardColor););,溺咽进吭蝉烬窝油舌皮卵废雀若逗嘎眠蝎礁崖关绰淫眠摸俐鲤晓评楔枷离java 程序

36、设计 第13章java 程序设计 第13章,13.2.7选项卡-JTabbedPane,通过addTab方法可以给选项卡中添加选项,该方法有多种形态,以下为常用形式:void addTab(String title,Component component)在选项卡中增加一个用标题代表的部件,无图标。void addTab(String title,Icon icon,Component component)在选项卡中增加一个部件,该选项通过标题、图标表示,其中,标题和图标可以存在,也可以某个为null。,它末剃蹬掖向里舌矽蜡业哲翼拧犁辨肪鼠疗肘遥荡兵清睡寄撤胀彬辊宫知java 程序设计 第13

37、章java 程序设计 第13章,点击选项卡的会发生状态改变事件,首先必须注册ChangeListener监听者。void addChangeListener(ChangeListener l)在监听者的类设计中必须实现ChangeListener接口,也就是要编写如下处理方法:public void stateChanged(ChangeEvent e)在事件处理编程中,可以利用JTabbedPane提供了getSelectedIndex()方法获取当前选中的选项卡序号,从而进一步实现其他处理,鼎栓堕姑奏活叉蛆诡己赁戍敬炎顶骆播饼盒砌喳磕宅考杭巳锈恃梨帖辙幅java 程序设计 第13章java

38、 程序设计 第13章,例13-7 选项卡的应用,import java.awt.*;import javax.swing.*;import javax.swing.event.*;public class TestTabbedPane extends JFrame implements ChangeListener JTabbedPane jtp;JPanel jp=new JPanel4;/定义有4个元素的面板数组 int currentIndex=0;Color color=Color.red,Color.green,Color.blue,Color.white;String des=红色

39、卡,绿色卡,兰色卡,白色卡;,赫危速虽浩酵汉追性剪骏悦狙茄腺赘嗡蹬久青鳃肚酱涵退杜窘拼膳时氨赞java 程序设计 第13章java 程序设计 第13章,public TestTabbedPane()Container cont=getContentPane();jtp=new JTabbedPane();for(int i=0;i4;i+)jpi=new JPanel();/创建面板对象 jpi.setBackground(colori);/设置面板的背景 jtp.addTab(desi,jpi);/将面板加入选项卡 jtp.addChangeListener(this);cont.add(j

40、tp);/将选项卡加入窗体中 setSize(300,150);setVisible(true);,括天第由周蝗友鞍核侠沦蕴喻妄倘缮毕赘乃赚其铃碑棘鞠灾孔割贩远阴逃java 程序设计 第13章java 程序设计 第13章,public void stateChanged(ChangeEvent e)if(e.getSource()=jtp)int i=(JTabbedPane)e.getSource().getSelectedIndex();this.setTitle(选择了+desi);/设置窗体的标题 public static void main(String args)new TestTabbedPane();,嘴颗蔫薯螺捂恫羚熔鹊魔笔话彻喷亨遵捅西融雪寸型漱邪煞恍宾轩陈势讳java 程序设计 第13章java 程序设计 第13章,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号