版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1没有键盘你能上机干什么?溜网看电影拷贝粘贴一篇论文……没有鼠标呢?用键盘关机去找个鼠标想象过没有鼠标的日子吗?用过命令行程序吗?感觉如何?2做别人会用,喜欢用的程序必须要有图形用户界面(GUI)你会发现这很酷我们会花4周时间来学习图形用户界面这是值得的!Java语言程序设计第7章JavaSwing图形用户界面4我们分阶段完成下面的任务1.做一个光秃秃的窗口2.在窗口上画画3.往窗口上放些按钮什么的4.做个体面的GUI5.让GUI能有反应6.锦上添花5目标一:做一个光秃秃的窗口你需要先学习组件组件:窗口,以及窗口上面的按钮,输入框…每个组件对应一个类67一切都从窗口开始JFrame是框架窗口组件一个对象代表屏幕上的一个窗口JFrame的长相会根据所处的平台会有不同Windows平台上MaxOSX平台上8框架窗口组件JFrame主要构造方法JFrame(),建立一个无标题的JFrame。JFrame(Stringtitle),建立一个标题为title的JFrame。基本操作创建窗口 JFrameframe=newJFrame();设置标题 frame.setTitle(“窗口示例”);
或者:
JFrameframe=newJFrame(“窗口示例”); 设置位置 setLocation(intx,inty)
设置大小 setSize(intwidth,intheight)
设置图标
setIconImage(Iconicon)定义关闭行为
setDefaultCloseOperation(intoperation)9都有哪些关闭行为?setDefaultCloseOperation(intoperation)operation:DO_NOTHING_ON_CLOSE:当窗口关闭时,不做任何处理HIDE_ON_CLOSE:当窗口关闭时,隐藏这个窗口DISPOSE_ON_CLOSE:当窗口关闭时,隐藏并释放窗口占有的其他资源(看演示)EXIT_ON_CLOSE:当窗口关闭时,退出程序默认是HIDE_ON_CLOSE1011//导入JFrame所在的包importjavax.swing.*;publicclassFrameDemo{publicstaticvoidmain(Stringargs[]){JFramejframe=newJFrame("Swing窗口");jframe.setSize(300,200);jframe.setVisible(true);jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}12//导入JFrame所在的包importjavax.swing.*;publicclassSecondWindowextendsJFrame{ publicSecondWindow(){ super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(480,240); setVisible(true);
}
publicstaticvoidmain(String[]args){ SecondWindoww=newSecondWindow(); }}13第2个任务:在窗口上画画14Q:在哪里画?(绘图表面)A:可以直接在JFrame上绘图,当然还有其他,你可以自己去调查一下。Q:坐标系如何规定?(图形环境)A:如图:15Q:用什么画?A:图形上下文,java.awt.Graphics类的一个对象。Q:图形上下文里都有什么?A:封装有基本绘图操作所需的信息。包括:要被绘制到其上的组件对象绘制和剪贴坐标的平移原点当前的剪贴区当前颜色当前的字体…16Q:用图形上下文都能干什么?A:画线g.drawLine(xcenter,ycenter,xs,ys);画圆g.drawArc(xcenter-50,ycenter-50,100,100,0,360);
绘制字符串
g.drawString(lastdate,5,125)设置字体 FontclockFaceFont=newFont("Serif",Font.PLAIN,14); g.setFont(clockFaceFont);设置颜色
ColorhandColor=Color.blue; g.setColor(handColor);17关于Colorjava.awt.Color类定义了颜色常量和方法。每种颜色都是从RGB值创建出来的。 publicColor(intr,intg,intb);预定义了13个颜色常量(见Java文档)
Color.BLACKColor.REDColor.black…….Color类的常用方法(见Java文档)18关于Font
java.awt.Font类定义了文字的外观字体对象的创建:FontclockFaceFont=newFont("Serif",Font.PLAIN,14);构造函数有3个参数:字体名称、字体风格和字体大小。字体名称:可以是运行程序的当前系统所支持的任何字体,字体风格:publicfinalstaticintPLAIN一个代表普通字体风格的常量publicfinalstaticintBOLD一个代表粗体字体风格的常量publicfinalstaticintITALIC一个代表斜体字体风格的常量也可以是BOLD与ITALIC的结合19Q:如何用图形上下文画图?在JFrame上绘图时,需要重写Jframe组件的paint()方法publicvoidpaint(Graphicsg)在需要进行绘图操作时,系统会将Graphics对象传递给paint方法这里的Graphics对象就是我们说的图形上下文Graphics对象是系统传递过来的,所以你永远不需要自己去创建它20使用Graphics类绘图例21课后作业下载课件并复习构思一个银行贷款管理系统,它应该包括房贷计算器,贷款人员信息,还款记录等。把界面画下来,等我们以后来实现它。22第3个任务:往窗口上放些按钮什么的(添加组件)23使用Swing组件的一些规则总结Swing组件从功能上分为容器组件原子组件原子组件必须加在容器组件内24容器组件分类顶层容器JFrame;JWindow;JApplet;对话框JDialog(JOptionPane)中间层容器面板Jpanel;
滚动窗格JScrollPane;拆分窗格JSplitPane;
标签窗格JTabbedPane;
分层窗格JLayeredPane25顶层容器中间层容器1中间层容器2中间层容器3中间层容器4中间层容器5中间层容器5原子组件1原子组件2原子组件3原子组件4原子组件5原子组件6原子组件7原子组件8原子组件9原子组件1026原子组件分类基本组件
按钮,组合框,列表,菜单,滑块,工具栏,文本区可编辑的显示组件表,文本,树,颜色选择器,文件选择器,数值选择器不可编辑的显示组件
标签,工具提示,进度条27往Jframe上添加组件publicclassWindowTextextendsJFrame{JTextFieldtext1,text2;
publicWindowText(){setLayout(newFlowLayout());text1=newJTextField("我不可编辑",10);text1.setEditable(false);text1.setHorizontalAlignment(JTextField.CENTER);text2=newJTextField(10);
this.getContentPane().add(text1);
this.getContentPane().add(text2);
this.getContentPane().setBackground(Color.RED);setBounds(100,100,236,150);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);
}}28创建一个简单的GUI(四个步骤)//这里一定要先导入Swring组件所在的包importjavax.swing.*;publicclassCloseDemo1{publicstaticvoidmain(Stringargs[]){//步骤一:创建窗口JFrameframe=newJFrame("我的第一个窗口");//步骤二:创建组件JButtonbutton=newJButton("我的第一个按钮");//步骤三:把组件加到窗口上去frame.getContentPane().add(button);//步骤四:显示出来frame.setSize(300,300);frame.setVisible(true); }}29//导入JFrame所在的包importjavax.swing.*;publicclassSecondWindowextendsJFrame{ JButtonbutton; publicSecondWindow(){ super();
//步骤二:创建组件 button=newJButton("我的第一个按钮"); //步骤三:把组件加到窗口上去 getContentPane().add(button); //步骤四:显示出来 setSize(480,240); setVisible(true);
} publicstaticvoidmain(String[]args){ //步骤一:创建窗口
SecondWindoww=newSecondWindow(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}3031第4个任务:做个体面的GUI不体面体面32布局管理器帮助我们完成GUI的布局!每个容器都有自己的布局管理器每个容器同一时刻只能有一个布局管理器布局管理器的主要任务:决定容器里每个元素的大小决定元素之间的间隔决定元素的位置当窗口移动或大小发生变化时,它也要应对布局管理器的统治范围33窗口面板A面板B按钮1按钮2按钮3按钮4按钮5按钮6按钮7按钮8窗口的布局管理器管面板A,B和按钮1,管不了按钮2-8面板A的布局管理器管按钮2,3,4面板B的布局管理器管按钮5,6,7,8,窗口和面板A,B的布局管理器可以是不同种类布局管理器如何决定34程序员你好,布局管理器。虽然我知道“用人不疑,疑人不用”这句话,但我还是很想知道,你是怎么做到的。毕竟,GUI的布局就是一张脸面,对我来说是非常非常重要的,事关名誉!我有知情权吧?布局管理器确实是的。如果一旦请了我,你就不能再多插手了。我呢,也不是一意孤行,我会询问我所属于的容器上个各个组件的意见,当然也不是都听取。在尊重或部分他们的意愿的基础上,来觉得各个组件的大小和位置。程序员那当窗口移动,或大小改变时,你还负责吗?布局管理器当然,我会负责到底。35我就是不想用布局管理器,偏要自己来管理!程序员那我要是不请你呢?布局管理器其实各个容器都有缺省的布局管理器。所以即使你以为自己没有请我们,默认的管理器也会为你工作。除非你明确的声明,你不打算聘请我们。程序员怎么声明?布局管理器容器对象有个setLayout()的方法,参数写成null就行。程序员那如果我不聘请你们,我会怎么样?布局管理器你会很惨。你必须使用setLocation(
),setSize(
),setBounds(
)等方法为组件设置大小和位置。程序员setLocation(
),setSize(
),setBounds(
)这些方法,在我请你帮我管理布局的时候也可以使用吗?布局管理器当然不行。我给你管理布局时,这些方法统统失效。36本课程评选的四大首席布局管理器FlowLayout流式布局BorderLayout边界式布局GridLayout网格式布局CardLayout卡片式布局忠告:了解它们的脾气和能力,更好地为你所用吧!37FlowLayout流式布局管理器把组件从左向右、从上向下,一个接一个的放到容器中组件的位置会随着窗口大小的变化而自动调整三种构造方法:publicFlowLayout()缺省居中对齐方式,组件间的水平和竖直间距为缺省值5个象素。publicFlowLayout(intalignment)使用指定的对齐方式(FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.Center),水平和竖直间距为缺省值5象素。publicFlowLayout(intalignment,inthorizontalGap,intverticalGap)使用指定的对齐方式,水平和竖直间距也为指定值。38layout=newFlowLayout();container.setLayout(layout);leftButton=newJButton("左对齐");container.add(leftButton);centerButton=newJButton("中间对齐");container.add(centerButton);rightButton=newJButton("右对齐");container.add(rightButton);39BorderLayout边界布局管理器将容器分成五个区域来安排组件: North、South、East、West、Center。构造函数BorderLayout()建立一个BorderLayout的对象,组件之间的缺省间隔(水平和垂直)为零。BorderLayout(inthgap,intvgap)建立一个BorderLayout的对象,组件之间的水平间隔为hgap,垂直间隔为vgap。40layout=newBorderLayout(5,5);container.setLayout(layout);
JButtonb1=newJButton(“北部");JButtonb2=newJButton(“南部");JButtonb3=newJButton(“东部");JButtonb4=newJButton(“西部");JButtonb5=newJButton(“中部");content.add(b1,“North”);content.add(b2,“South”);content.add(b3,“East”);content.add(b4,“West”,);content.add(b5,“Center”);41要是“东西南北中”缺一个咋办?42GridLayout网格布局管理器容器中的各组件呈网格状分布容器中各组件的高度和宽度相同容器大小变化时,各组件相对位置不变,但大小会变化各组件的排列方式为:从上到下,从左到右。43构造函数GridLayout():在一行中排列组件,组件之间的缺省间隔为零。GridLayout(introws,intcols):将容器分成rows行,cols列,组件之间的水平间隔和垂直间隔均为零。GridLayout(introws,intcols,inthgap,intvgap):将容器分成rows行,cols列,组件之间的水平间隔为hgap,垂直间隔为vgap。44grid=newGridLayout(2,3,5,5);container.setLayout(grid);JButtonb1=newJButton(“按钮1");JButtonb2=newJButton(“按钮2");JButtonb3=newJButton(“按钮3");JButtonb4=newJButton(“按钮4");JButtonb5=newJButton(“按钮5");JButtonb6=newJButton(“按钮6");content.add(b1);content.add(b2);content.add(b3);content.add(b4);content.add(b5);content.add(b6);45CardLayout卡片布局管理器容器中的所有组件如同扑克牌般的堆叠在一起为每张牌定义一个名字,可按名字选牌可以按顺序向前或向后翻牌可以直接选第一张或最后一张牌46构造函数CardLayout():组件之间的缺省间隔为零。CardLayout(inthgap,intvgap):组件之间的水平间隔为hgap,垂直间隔为vgap。几个常用方法
publicvoidshow(Containerparent,Stringname)publicvoidnext(Containerparent)publicvoidprevious(Containerparent)publicvoidfirst(Containerparent)publicvoidlast(Containerparent)47这里有三张扑克牌b1=newJButton("流式布局");b2=newJButton("边界布局");b3=newJButton("网格布局");p1=newJPanel();p1.add(b1);p1.add(b2);p1.add(b3);card=newCardLayout();p2=newJPanel();p2.setLayout(card);p2.add("流式布局",newTestFlowLayout());p2.add("边界布局",newTestBorderLayout());p2.add("网格布局",newTestGridLayout());48课后作业下载课件并复习编程实现你的银行贷款管理系统的窗口,它可以没有任何反应,有个外观就可以了。49回忆开发GUI程序的步骤:构建一个顶层容器,通常是Jframe构建若干个组件,组件可以是其它容器(因为容器也是组件)设定各个容器的布局管理器用容器的add方法将这些组件加入到容器中50第5个任务:让窗口有反应(关键部分)51按钮Java您好。我是一个按钮,程序员已经写好了我被按下以后要执行的代码,您看这样是不是就可以了。Java你想的太简单了。如果用户按了你,
你自己能去调用代码吗?你有这个本事吗?我赋予你这个能力了吗?按钮对不起,我错了。我没这个本事。那你能帮我调用那段代码吗?Java可以,但你要按我的方式,做一些申请。52Java如何进行事件处理JDK1.1以后采取了授权处理机制(Delegation-basedModel),按钮等组件可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理。Java运行时系统无法直接调用开发人员提供的事件处理程序,开发人员必须事先令其将事件发送给自己提供的事件处理程序。53程序代码。。。。。。。。事件监听器54程序代码。。。。。。。。程序代码按钮大哥,如果有人按了你,就执行我的这段代码,好吗?按钮你找我的监护人—事件监听器吧。我和它之间是有协议的,它会帮我处理这些事情。程序代码监听器大哥,如果有人按了按钮,请执行我的这段代码好吗事件监听器好的。这正是我的职责。我会为按钮负责的。不过,你的代码要填在指定位置上,不然我可找不到你,别忘了。按钮与事件监听器之间的协议55b1=newJButton(“按钮");b1.addActionListener(事件监听器对象);程序代码要填在什么位置上?publicclassMyGUIimplementsActionListener{publicvoidactionPerformed(ActionEvente){//加在这里!!!}}事件发生时的处理流程56事件监听器对象第一步:用户按下按钮事件对象按钮对象(事件源)第二步:系统传递事件对象给事件监听器对象第三步:事件监听器对象调用相应程序代码57在事件处理的过程中,涉及的三类对象:事件源事件发生的场所,通常就是各个组件,如按钮事件对象用户对界面操作在java语言上的描述,对应不同的类。例如点击按钮对应的事件类是ActionEvent。
事件监听器对象事件处理者,接收事件对象并对其进行处理。58事件监听器对象所对应的类是谁写的?有什么要求?是程序员要写的这个类要实现某lisenter接口处理的事件不同,要实现的接口也不同(常用的是ActionListener,按钮,文本框,菜单项等
)别忘了:实现接口,就要实现它定义的所有方法事件发生后要执行的程序代码必须放在这个类的指定位置上59publicclassTestButtonextendsJFrameimplementsActionListener{ privateJButtonbutton1; privateContainercontainer; publicTestButton(){ container=getContentPane(); container.setLayout(newFlowLayout()); button1=newJButton("Red");
button1.addActionListener(this); container.add(button1); setSize(300,75); setVisible(true); }
publicvoidactionPerformed(ActionEvente){ button1.setBackground(newColor(255,0,0)); } publicstaticvoidmain(String[]args){ TestButtont=newTestButton(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}事件处理程序的编写步骤:编写一个实现了某lisenter接口的类。在其中填写用于事件处理的代码。声明该类的一个对象,如handler。调用组件的add某Listener(handler)方法。注册事件监听器对象。60这样做有时很烦!//CloseDemo1.javaimportjavax.swing.*;importjava.awt.event.*;publicclassCloseDemo1{publicstaticvoidmain(Stringargs[]){JFramejframe=newJFrame("关闭窗口例");//创建一个窗口jframe.setSize(400,100);//设置窗口大小jframe.setVisible(true);//使窗口可见myWinClosehandler=newmyWinClose();//声明事件对象jframe.addWindowListener(handler);//注册事件监听器}}//实现了WindowListener接口的类的定义classmyWinCloseimplementsWindowListener{ //关闭窗口的事件处理方法
publicvoidwindowClosing(WindowEvente){System.exit(0);} publicvoidwindowClosed(WindowEvente){} publicvoidwindowOpened(WindowEvente){} publicvoidwindowIconified(WindowEvente){} publicvoidwindowDeiconified(WindowEvente){} publicvoidwindowActivated(WindowEvente){} publicvoidwindowDeactivated(WindowEvente){}}有时,你只想做一点儿处理,可是你却不得不实现接口的所有方法。即使是写空方法体,也很烦!!!61精简事件处理程序的技巧之一:
使用监听器适配器//CloseDemo2.javaimportjavax.swing.*;importjava.awt.event.*;publicclassCloseDemo2{ publicstaticvoidmain(Stringargs[]){ JFramejframe=newJFrame("关闭窗口例"); jframe.setSize(400,100); jframe.setVisible(true); myWinClose2handler=newmyWinClose2(); jframe.addWindowListener(handler); }}//定义继承于窗口适配器的类classmyWinClose2extendsWindowAdapter{ publicvoidwindowClosing(WindowEvente){System.exit(0);}}一个适配器类实现一个接口,并为该接口的所有方法提供默认实现(空方法体),从而允许我们仅仅覆盖自己感兴趣的少量方法。62//CloseDemo3.javaimportjavax.swing.*;importjava.awt.event.*;publicclassCloseDemo3{ publicstaticvoidmain(Stringargs[]){ JFramejframe=newJFrame("关闭窗口例"); jframe.setSize(400,100); jframe.setVisible(true);
jframe.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){System.exit(0);} }); }}精简事件处理程序的技巧之二:
使用匿名内部类63精简事件处理程序的技巧之三:
让顶级类自己实现监听器接口或继承监听器适配器
//CloseDemo4.javaimportjavax.swing.*;importjava.awt.event.*;publicclassCloseDemo4extendsWindowAdapter{
publicstaticvoidmain(Stringargs[]){ JFramejframe=newJFrame("关闭窗口例"); jframe.setSize(400,100); jframe.setVisible(true); jframe.addWindowListener(newCloseDemo4()); }//窗口关闭事件处理程序
publicvoidwindowClosing(WindowEvente){System.exit(0);}}64下面介绍大名鼎鼎的基本组件三大侠客:没啥本事却哪儿也少不了它的中庸侠标签
果断的
霹雳侠按钮善于倾听的知心侠文本框65中庸侠------标签(JLabel)标签显示单行只读文本、影像或者两者兼有其内容可以是左、右或中间对齐的。默认情况是左对齐。主要构造方法如下:Jlabel():创建一个无文本也无影像的标签;JLabel(Stringtext);创建一个带有指定文本的标签实例;JLabel(Iconimage):创建一个带有指定影像的标签实例。对鼠标事件有响应,要处理标签上发生的鼠标事件,需要实现MouseListener和MouseMotionListener接口。6667霹雳侠------按钮JButton按钮表面所显示的文本称为按钮标签使用多个JButton时,应确保为每个按钮提供唯一的标签常用构造方法有:JButton():创建一个无标签的按钮;JButton(Stringtext):创建一个标签为text的按钮;JButton(Iconicon):创建一个图标为icon的按钮。单击按钮会引发事件ActionEvent,要处理需实现接口ActionListener。6869知心侠------文本框JTextField用户可以通过键盘在该区域中输入文本,或者程序在区域中显示文本。JTextField的主要构造方法有:JTextField():创建一个空文本的文本框;JTextField(Stringtext):创建一个初始文本为text的文本框;JTextField(Stringtext,intcolumns):创建一个初始文本为text的文本框,并指定初始字段长度为columns。JTextField的主要方法有:voidsetFont(Fontf):设置字体;StringgetText():获取文本框中的文本;voidsetText():设置文本;voidsetEditable(booleanb):设置文本框是否可编辑;voidsetHorizontalAlignment(intalignment):设置文本对齐方式。可用的对齐方式有左对齐JTextField.LEFT,中间对齐JTextField.CENTER和右对齐JTextField.RIGHT。70JTextField包括两个子类:JTextArea(可以输入若干文本行)JPasswordField(不回显输入的内容)7172课后作业下载课件并复习给你的银行贷款管理系统添加事件处理。
比如,
按下“确定”按钮后,检查用户输入信息是否完整;
按下“清除”按钮后,清除窗口上的输入内容;
按下“退出”按钮后程序结束等。73第6个任务:锦上添花学习三大侠客之外的组件74单选按钮(JRadioButton)单选按钮通常成组出现一次只能选中该组中的一个单选按钮必须使用ButtonGroup维护单选按钮间的逻辑关系主要构造方法: JRadioButton():建立一个新的JRadioButton; JRadioButton(Stringtext,booleanselected):建立一个有文字的JRadioButton,且设置初始状态(是否选中); JRadioButton(Stringtext,Iconicon):建立一个有文字且有图像的JRadioButton建立组的方法:ButtonGroupgroup=newButtonGroup();//建立组group.add(radiobutton); //将单选钮添加到组中75产生事件ItemEventItemEvent类的主要方法:ObjectgetItem():返回事件发生处的项目;ObjectgetResource():返回事件发生处的项目;intgetStateChange():返回生成事件的状态改变类型,如果选中,返回的值为ItemEvent.SELECTED,否则,返回值为ItemEvent.DESELECTED。处理该事件应实现的接口为ItemListener接口中只有一个事件处理方法: publicvoiditemStateChanged(ItemEvente){}
767778复选框(JCheckBox)是一种复选框对象,可以选择多项采用布尔值表示用户所做的选择常用构造方法如下:JCheckBox():建立一个新的JCheckBox;JCheckBox(Stringtext):建立一个有文字的JCheckBox;JCheckBox(Stringtext,booleanselected):建立一个有文字的JCheckBox,且设置其初始状态(是否选中)。产生ItemEvent事件(同单选按钮)79复选框(JCheckBox)80复选框(JCheckBox)81组合框(JComboBox)(下拉列表)提供一列选项,用户可以在这列选项中进行单项选择如果列表项的数目大于可显示的行数时,自动提供一个滚动条组合框的常用构造方法:JComboBox():创建一个无选项的组合框组件;JComboBox(Object[]items):利用数组对象建立一个JComboBox组件;JComboBox(Vectoritems):利用向量对象建立一个JComboBox组件。组合框的常用方法有:voidaddItem(Objectobject):通过字符串类或其他类加入选项;intgetItemCount():获取条目的总数;intgetSelectedIndex():获得所选项的索引值(索引值从0开始)产生ItemEvent事件(同单选按钮)8283列表(Jlist)可以让用户选择一到多个选项.构造函数:JList():建立一个新的JList组件。JList(ListModeldataModel):利用ListModel建立一个新的JList组件.JList(Object[]listData):利用数组对象建立一个新的JList组件。JList(VectorlistData):利用向量对象建立一个新的JList组件。常用方法如下:voidsetSelectionMode(intselectionMode):设置选择模式。单一选择ListSelectionModel.SINGLE_SELECTION连续区间选择ListSelectionModel.SINGLE_INTERVAL_SELECTION与多重选择ListSelectionModel.MULTIPLE_INTERVAL_SELECTION(默认)voidsetSelectedIndex(intindex):通过索引值选择某选项。voidsetVisibleRowCount(intn):设置可见行数。intgetSelectedIndex():单选时,获得被选项索引。84JList的常用事件是取得用户选取的项目时产生列表选择事件(ListSelectionEvent)该事件可以检测用户是否对JList的选取有任何的改变接口是ListSelectionListener这个接口中只有一个方法: publicvoidvalueChanged(ListSelectionEvente){}8586进度条(
JProgressBar)必须和Timer配合使用主要构造方法:JProgressBar():创建一个水平进度条,显示边界,但没有进度字符串。JProgressBar(intorient):创建一个指定方向的进度条。JProgressBar(intmin,intmax):创建一个指定最小值和最大值的水平进度条。JProgressBar(intorient,intmin,intmax):创建一个具有指定的方向、最小值和最大值的进度条。87时间组件(Timer)周期地触发ActionEvent事件,使程序执行指定的操作
构造方法有:Timer(intdelay,ActionListenerlistener):建立一个Timer组件,并在每一次delay的时间点上触发ActionEvent事件。主要方法有:voidaddActionListener(ActionListenerlistener):注册动作事件。voidstart():激活Timer组件。voidstop():停止Timer组件。voidrestart():重新激活Timer组件。voidsetDelay(intdelay):设置间隔时间。void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能工厂设备点检系统工程师岗位招聘考试试卷及答案
- 城市绿地杂草清除技师考试试卷及答案
- 车载信息娱乐系统工程师考试试卷及答案
- 消费需求精准识别与画像构建方案
- 医保DRG支付改革的医院应对策略
- 区块链皮损AI诊断数据标准化
- 区块链赋能内镜医疗数据:患者隐私与数据流动
- 煤矿大坡度掘进管理制度(3篇)
- 施工方案剖析内容(3篇)
- 宁夏洗车施工方案(3篇)
- 以热爱为翼为青春飞驰+课件+-2026届高三高考百日冲刺励志主题班会
- 2026-2030中国汽车加气站行业市场发展分析及发展趋势与投资机会研究报告
- 2026年福建莆田市涵江区区属一级国有企业高级管理人员招聘2人笔试备考题库及答案解析
- 2026福建莆田市涵江区选聘区属一级国有企业高级管理人员2人笔试备考题库及答案解析
- 2026年AI原生网络架构项目投资计划书
- 萍乡市事业单位2026年统一公开招聘工作人员备考题库含答案详解(突破训练)
- 2026春季开学教职工大会校长精彩发言:大格局!3个变局、3个确定性、3个转变
- 西安市离婚协议书(2026简易标准版)
- 养老机构护理服务操作手册
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 库房租房合同简单版
评论
0/150
提交评论