还剩6页未读,继续阅读
文本内容:
了解工具包、工具包♦AWT SWING单元13常用Swing组件的使用单元油耗计算程序设计的使用方法目标掌握、♦JLabel JTextField JButton类的使用方法掌握常见组件的特点♦Swing学习任务任务描述用户在制定的区域输入加油钱数,汽车跑的公里数,和汽油的价格,单击“计算”按钮,计算显示百公里油耗计算公式为百公里油耗(升)=加油钱数/汽油的价格/汽车跑的公里数*100运行结果知识准备对的支持包括基本控件、界面容器、事件机制、布局设计、图形和Java GUI图像等,并提供了大量的类来实现界面设计可以实现图形界面的主要有工AWT具集和工具集Swing油耗计算程序设计抽象窗口工具包()
13.1AWT是的缩写,称为抽象窗口工具集,,是基AWT AbstractWindow ToolkitJava础类的一部分提供了构建用户界面的组件,例如菜单、按钮、文本框、对AWT话框、复选框等,可以根据图形界面组件的输入实现事件处理此外,允许绘AWT制图形、处理图像、控制用户界面的布局、字体显示以及提供利用本地剪贴板实现数据传送类等具有辅助性质的类,中类与类之间的关系如图所示,由AWT4-1类的子类或间接子类创建的对象称为一个组件(又称控件)把Component Java由的子类或间接子类创建的对象称为一个容器,可以把组建添加到容器Container中图类体系结构4-1AWT由于属于重量级组件,消耗资源比较多、不同操作系统中外观也会有所AWT不同,而且其功能受限于本地组件为了克服这些缺点,在基础上,又Java AWT提供了组件Swing组件简介
13.2Swing组件由,是内容丰富、功能强大的轻量级组件设计与的设计不Swing AWT同,与显示和事件有关的许多处理工作都由编写的类来完成轻量级组件Java UI占用资源较少,效率较高,显示外观与平台无关,功能更强更灵活是纯Swing Java语言实现的,并不依赖本地的工作平台具有和同性质的组件,如按Swing AWT钮等从命名的角度看,组件都是第一个字母标有一个比如按钮组Swing“J”,AWT件命名为而的按钮组件命名为见图还定义了Button,Swing JButton,4-1o Swing其他具体应用的组件,如树组件、表组件和列表组件等【小知识】Sw ing组件与AWT组件的区别可以让用户定义组件的外观,A WT组件的外观取决于本地操作系统具有良好的扩展性,用户可以扩展或定义组件,AWT的扩展性较差AWT组件仍被支持,由于它受到本身条件的限制,在GUI用户界面组件应用范围减少Swing组件在图形用户界面领域中应用更加广泛但着并不意味着AWT集被Swing集完全取代Swing集只是基于AWT构架之上,提供更加强大的GUI组件而已组件
13.3Jcomponent继承自类的轻量级组件也都是容器需要注意的是,JComponent JComponet不可以把组件直接添加到窗体中,应当把组件添加到窗体所包含的Swing Swing一个称为内容面板的容器中在窗体的内容面板中,尽量只使用轻量组件,Swing否则可能会出现预想不到的问题窗体通过调用Swing publicContainer方法得到它的内容面板getContentPane
13.4Jf rame组件图组件结构图4-1Swing【实例】演示组件的用法【源代码例】4-1Swing14-1提示类的用法有两种,一种是直接创建其对象并使用,另一种方法JFrame是继承类,创建其子类,然后再创建并使用其子类的对象大家要注意JFrame组件和组件外观上的差异示例的核心代码如下所示,完整代码请从Swing AWT课程资源库或教材配套光盘获取继承使用class MyJWindowextends JFrame{//一MyJWindow{yj•1f油耗计算程序设计(轻组件按钮)JButton btn=new JButton(轻组件”,)JTextArea txt=new JTextArea20,20;*5)主类定义如下,其中表示直接使用类,表示directUse JFrameinheritUse继承使用类,两个方法都可以显示窗口,但一次只能使用一个JFrame{〃直接使用public classExample4_2()static voiddirectUse{(轻组件按钮)JButton btn=new JButton轻组件”,)JTextArea txt=new JTextArea20,20;(根窗体)JFrame jfrm=new JFramevA油耗计算程序设计的其他常用组件
13.5swing组件13J label标签组件是用于显示文本信息、或图标、或二者兼而有之组件不会J Label对用户的输入发生反应,即,对组件不能编辑标签组件可以将显示内容JLabel垂直或水平显示,通常默认文本信息的显示状态为水平而图标的显示状态为垂直标签组件一般起到提示作用13组件用于创建文本框文本框是用来接受用的单行文本信息输入的JTextField区域通常文本框用于接受用户信息或其他文本信息的输入当用户输入文本信息后,如果为对象添加事件处理,按回车键会激发一定的动作JTextField是的子类,是一种特殊的文本框,也是用来接受J PasswordField JTextField单行文本信息的输入的区域,但会用回显字符串代替输入的文本信息因此,组件也称为密码文本框的默认的回显字符是JPasswordField JPasswordField用户可以自行设置回显字符组件13JTextArea组件是文本区组件它与一样能接受文本信息的输入和JTextArea JTextField显示但是与组件不同的是,对象可以多行输入与显示,突JTextField JTextArea破了的单行的限制但是,如果文本信息的行数超过文本区限定的行JTextField数,超出的文本信息不能显示为了解决这个问题,可以借助滚动窗JScrollPane格组件将文本区放置到滚动窗格中,就可以实现超出文本信息的滚动输出类似的程序代码如(文本区对象)new JScrollPaneJTextArea组件13JButton是用来创建命令按钮对象具有这样的功能当用户按下命令JButton JButton按钮,会激发一定的动作创建的按钮可以具有图标和文本信息的内容,JButton通过它们可以有效地提示及帮助用户操作13组件可以用来创建具有文本和图标的复选框这种复选框具有来JCheckBox“选中”或“取消选中”状态,可以通过用户的选择来实现通常,用多个复选框作为一组来表示多种组合条件,用户可以同时选择多个复选框组件可以用来创建具有文本和图标的单选按钮,和JRadioButton JCheckBox组件一样,可以表示“选中”或“取消选中”状态可以定义一个或多个单选按钮添加到一个按钮组作为整体处理,只不过在任何情况下,只有一个单ButtonGroup选按钮能处于“选中”状态,其他单选按钮处于“非选中”状态中一般,定义多个单选按钮来表示多个条件选择一种的情况组件13JcomboBox组件用来创建组合框对象一般,根据组合框是否可编辑的状态,JComboBox可以将组合框分成两种常见的外观可编辑状态外观是视为文本框和下拉列表的组合,不可编辑状态的外观可视为按钮和下拉列表的组合在按钮或文本框的右边有一个带有三角符号的下拉按钮用户可以点击该下拉按钮,可以出现一个内容列表这也是组合框的得名组合框通常用于从列表的“多个项目中选择一个”的操作组件13JList组件用于定义列表,允许用户选择一个或多个项目与类似,JList JTextArea本身不支持滚动功能,如果要显示超出显示范围的项目JList任务实施实现思路
1.定义一个油耗计算器窗口类,继承自窗体类并实现接口JFrame,ActionListener窗口中通过类添加三个文本条,通过类添加计算按钮,通过JTextFieldJButtonJ类添加标签显示计算结果通过实现接口的Label ActionListeneractionPerformed方法响应用户点击按钮的操作设计油耗计算器窗口1定义油耗计算器窗口类的构造方法2定义单击动作处理方法3actionPerformed定义主方法,创建对象并进行测试4main程序代码
2.e油耗计算程序设计窗口界面构建代码public GasConsumption{//Container con=getContentPane;上次加油金额元”;usedMoney=new JTextFieldH200n;runKm=new JTextField500n;计算calculate=new JButtongasConsumption=new JLabel;//设置窗体的标题、大小、可见性及关闭动作油耗计算器serntlesetSize340,260;setVisibletrue;//计算按钮点击后执行的油耗计算代码public voidactionPerformedActionEvent e{float fGas=fMoney/fPrice/fKm*100;}任务拓展组件中除了包括上述组件外,还有一些其他组件,下面进行部分讲解Swing
1.JD ia Iog常见构造方法创建一个没有标题并且没有指定所有者的无模式对话JDialogQ Frame框世创建一个具有指定标题和指定所有者窗体JDialogFrame owner,String Ie的无模式对话框创建一个没有标题但有指定所有者JDialogFrame owner,boolean modal的有模式或无模式对话框Frame创建一个具有指定标题和指定所有者对话框JDialogDialog owner,String title的无模式对话框创建一个没有标题但有指定所有者对话JDialogDialog owner,boolean modal框的有模式或无模式对话框使用时和类似,不可以把组件直接添加到中,也含有JFrame JDialogJDialog一个内容面板,应当把组件添加到内容面板中
2.JPane I组件定义的面板实际上是一种容器组件,用来容纳各种其他轻量级的JPanel组件此外,用户还可以用这种面板容器绘制图形【实例】演示作为画布的用法【〈源代码例】4-2JPanel4-2〃class MyCanvasextends JPanel{rpublic voidpaintComponentGraphics g{油耗计算程序设计
3.JScroI IPane滚动窗口可以把一个组件放到一个滚动窗口中,然后通过滚动条JScrollPane来观察这些组件【实例】演示的使用方法【源代码例】4-3JScrollPane Q4-3提示本程序显示一窗口,窗口中包含一个文本区域,如果输入的文字超出行、列显示范围,则自动显示水平和垂直的滚动条JButton btn=new JButtonHokn;JTextArea txt=new JTextArea10,20;油耗计算程序设计JScrollPane scroll=new JScrollPanetxt;Container con=getContentPane;
4.JSpI itPane拆分窗口拆分窗口就是被分成两部分的窗口,有水平拆分和垂直JSplitPane拆分两种构造方法JSplitPaneint newOrientation,boolean newContinuousLayout,ComponentnewLeftComponent,Component newRightComponent;JSplitPaneint newOrientation,Component newLeftComponent,ComponentnewRightComponent;取值newOrientation;JSplitPane.HORIZONTAL_SPLIT orJSplitPane.VERTICAL_SPLIT表示拆分线移动时组件是否连续变化;newContinuousLayout表示窗口中的两个组件newLeftComponent,newRightComponent【实例】演示如何用拆分窗口【、扁代码例4-4JSplitPane K4-41JSplitPane split_two=newContainer con=getContentPane;F-图4-5拆分窗口示例V油耗计算程序设计
5.JInternaIFrame内部窗体用于在一个主窗口内显示一个或多个子窗口每个子JlnternalFrame窗口都可以拖动、关闭、变成图标、调整大小、标题显示和支持菜单栏使用时,需要先将子窗口对象添加到中,再将对象添力口到JDesktopPane JDesktopPane主窗口的内容面板中子窗口默认不可见,需要设置可见性和大小构造方法public JlnternalFrameStringtitle,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable【实例】演示内部窗体的使用方法源代码例】4-5JlnternalFrame4-5Container con=getContentPane;「-----------------------------------------------------btn1=new JButtonHboyn;一.、而打工笛铲击心工〈77y;油耗计算程序设计btn2=new JButtonHgirln;JlnternalFrame frm1=new JlnternalFrame内部窗体1H,true,true true,true;5JDesktopPane deski=new JDesktopPane;内部窗体JlnternalFrame frm2=new JlnternalFrame』2\true,tnje,true rue;JDesktopPane desk2=new JDesktopPane;图内部窗口示例4-6除了上面介绍的一些组件外,还有一些常用组件,如计时器、进度条Timer>树形组件、表格、文本窗格、文件选择器JProgressBar JTreeJTable JTextPane等,有些组件会在后面的任务中用到,有些限于篇幅在这里就不做详JFileChooser细介绍了,读者如果感兴趣可以查看帮助文档了解其使用方法任务实训JDK.实训目的1掌握使用构造窗口;♦JFrame掌握使用构造容器对象;♦JPanel掌握使用基本组件构造界面♦GUI实训内容
2.yj e油耗计算程序设计利用技术设计一个邮箱地址注册的图形用户界面应用程序Java SwingE-mail程序运行效果如图所示4-7图注册界面4-7E-mail。