对话框 AWT组件实践
实验6 awt图形用户界面设计

实验六基于AWT的图形用户界面设计一、实验目的与要求●掌握AWT包中常用组件的使用方法●采用布局管理器进行界面的布局,熟悉布局管理器的适用场合●理解事件处理机制,对不同的事件使用相应的事件处理方法●熟悉java.awt.Graphics进行二维图形设计的方法二、实验内容:1.设计一个注册窗口,界面如图1所示,其中有两个按钮,当输入完姓名和密码内容后,按“确认”按钮出现图2所示界面,当按下“重新输入”按钮,又回到图1所示界面。
图1 图2提示:窗口中放置两个面板组件,第一个面板为网格布局,用来放置3个标签和两个文本框,第二个面板为流式布局,放置两个按钮。
由于两个按钮都要进行事件处理,所以在事件处方中要进行事件源的判断。
要求(1):分别尝试:①使用匿名类作为事件监听者②使用包含事件源的类作为事件监听者③使用内部类作为事件监听者要求(2):分别尝试:①使用WindowListener实现窗口的关闭事件②使用WindowAdapter实现窗口的关闭事件2.编写一窗口程序,当用户按下q键或单击窗口关闭按钮时,结束程序运行;当用户按其他按钮时在控制台上输出被按下的字符。
3.编写一窗口程序实现:有一个标题为“计算”的窗口,窗口的布局如图所示自行设计;有四个按钮,分别为“加”、“减”、“乘”、“除”;另外,窗口中还有三个文本框,单击任一按钮,将前两个文本框中的数字进行相应的运算,在第三个文本框中显示结果。
提示:文本框中输入的数据为String类型,要想进行运算必须转换成Double类型,同理要想将计算结果在第三个文本框中显示,需要将Double类型转换成String类型。
4.编写一窗口程序实现,在窗口中用不同颜色绘制椭圆、圆、圆弧和文本。
5.编写一个简单的屏幕变色程序。
当用户单击“变色”按钮时,窗口颜色就自动地变成另外一种颜色。
要求:颜色随机生成。
6.编写一完整的计算器程序,界面如图所示:提示:①窗口为边界布局方式,窗口中放置两个面板组件,第一个面板为边界布局,用来添加文本框和取消按钮,第二个面板为网格布局,用来添加16个按钮。
lab11-图形用户界面(GUI)设计

实验11 图形用户界面(GUI)设计一、实验目的●掌握容器、组件的概念;●熟悉常用容器Frame、Panel等的使用;●熟悉常用组件Label、Button、TextField、TextArea、List、Choice、Checkbox等的使用。
●掌握常用布局管理器的使用;●掌握下拉式菜单(一级、二级)的设计——创建菜单条、菜单、菜单项对象,并进行正确的装配;●掌握Font类及Color类二、实验要求●熟练掌握Frame、Panel的用法●熟练掌握常用组件的使用●熟练掌握布局管理器的使用●掌握下拉式菜单的使用三、实验环境●Eclipse IDE或者MyEclipse IDE四、考查知识点1.AWT核心概念:组件、容器和布局管理器组件--Component组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。
组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来,是Java的图形用户界面的最基本组成部分。
容器—Container容器(Container)也是一个类,实际上是Component的子类,因此,容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。
布局管理器--LayoutManager布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。
2.Swing概述Swing是第二代GUI开发工具Swing:又称为轻量级组件,它是Java的改进版本,是第二代GUI开发工具;AWT采用了与特定平台相关的实现,而绝大多数Swing组件却不是,Swing 组件显示不依赖于本地对等组件;Swing是构筑在AWT上层的一组GUI组件的集合,为保证可移植性,它完全用Java语言编写;与AWT相比,Swing提供了更完整的组件,引入了许多新的特性和能力。
介绍 AWT:使用窗口、图形、文本

介绍 AWT:使用窗口、图形、文本
在第19章中,我们介绍了抽象窗口工具包(AWT),它对小应用程序提供了支持。在 这一章中,我们将进一步介绍它。AWT包含了许多类和方法,通过它们我们可以生成和管 理窗口。如果要对AWT包进行详尽的描述,恐怕要用整整一本书。因此,我们不可能详细 描述AWT中的每一个方法、实例变量和类。然而,在这一章和接下来的两章,我们将介绍 所有在你创建小应用程序或独立程序时有效地利用AWT所需要的知识。之后,你将可以独 立的学习AWT的其他部分。 在本章中,你将学会如何创建和管理窗口、管理字体、输出文本以及使用图像。在第 22章中,描述了各种各样AWT所支持的组件,比如滚动条和按钮。同时,还解释了Java事 件处理机制的更多的方面。在第23章中,介绍了AWT中的图像子系统以及动画。 虽然,AWT的主要目的是支持小应用程序窗口,它也可以被用来创建独立运行在GUI 环境中的窗口。由于大多数的例子采用了小应用程序的形式,所以为了运行它们,你需要 用一个小应用程序查看器或者是兼容Java的浏览器。还有一小部分的例子示范了独立窗口 程序的创建。 注意:如果你还没有阅读第20章,那么请先阅读。它讲述了事件处理的基本知识, 而这一章中所用的许多例子都采用了事件处理。
21.1 AWT 类
AWT类被定义在java.awt包中。它是Java中最大的包之一。但由于采用从上到下分层方 式组织,所以理解和使用起来都比较容易。表21-1列出了一些AWT的类。
表 21-1 类(Class) AWTEvent AWTEventMulticaster BorderLayout Button Canvas CardLayout Checkbox CheckboxGroup CheckboxMenuItem 描述 封装AWT事件 分配事件到多个事件监听器 边界布局管理器。 边界布局使用了五个组件: North, South, East, West和Center 产生一个下压式按钮控件 一个空白,可以自由使用的窗口 卡片布局管理器。卡片布局仿效索引卡片。只有顶部的卡片可以看到 产生一个复选框 产生一个复选框控件组 产生一个开/关菜单项 一些 AWT 类
对话框AWT组件实践讲解

importjava.awt.event.*;
importjava.awt.*;
importjavax.swing.*;
publicclassFontDialogextendsJDialogimplementsItemListener,ActionListener {
FontFamilyNamesfontFamilyNames;
fontSizeList=newJComboBox();
Stringname[]=fontFamilyNames.getFontName();
fontNameList.addItem("字体");
for(intk=0;k<name.length;k++)
fontNameList.addItem(name[k]);
elseif(fontXing.equals("常规斜体")){
font=newFont(fontName, Font.PLAIN+Font.ITALIC,fontSize);
}
elseif(fontXing.equals("加重斜体")){
font=newFont(fontName, Font.BOLD+Font.ITALIC,fontSize);
Integerm=(Integer)fontSizeList.getSelectedItem();
fontSize=m.intValue();
font=newFont(fontName,Font.PLAIN,fontSize);
}
label.setFont(font);
label.repaint();
Java图形界面-AWT

类本身作为事件监听器 匿名内部类
示例代码:AnonymousEventHandler.java
6.AWT绘图
Java开发中,制作小游戏会用到AWT的绘图功能,另外JavaEE项目中,绘制验证码也会用到这 部分知识。 (1) Component类中的绘图方法: paint(Graphics g):绘制组件外观
一、Java图形界面编程-AWT
1. 2. 3. 4. 5. 6. 7. 8. AWT图形界面编程 AWT常用组件 对话框与菜单 布局管理器 事件处理 AWT绘图 拖放功能的实现 剪贴板
1.AWT图形界面编程
①AWT图形界面编程相关的类都在Java.awt包以及子包下 ②两个基类:Component和MenuComponent
C. Swing提供的图形组件数量远远超过AWT
D. Swing组件采用MVC的设计模式
E. Swing组件层次
E. AWT组件的Swing实现
Swing为除了Canvas组件之外的所有AWT组件 的实现,并且功能更加强大,相对于AWT的额外 功能: 可以为Swing组件设置提示信息
ToolTipDemo.java
1. 概述 2. 顶级容器 3. 中间容器 4. 常用组件
1、概述
A. Java开发图形界面,大多数情况下使用Swing ,很少使用AWT B. Swing是100%java实现,不再依赖本地GUI,可 在不同的平台保持相同的外观,不会产生平台 相关的BUG。并且有能力显示本地平台不支持 的显示外观
8.剪贴板
实际上剪贴板操作与拖放操作有类似之处,他们的差别在于:拖放操作将数据从拖放源直接 传递给拖放目 标而剪贴板操作则是现将数据传递到剪贴板上:然后从剪贴板传递给目标。 AWT提供两种剪贴板:本地剪贴板和系统剪贴板,相关操作的接口和类统一放在 Java.awt.datatransfer (1) 传递文本 1)创建剪贴板 系统剪贴板:Clipboard clipboard=Toolkit.getfaultToolkit.getSystemClipboard(); 创建本地剪贴板: Clipboard clipboard=new Clipboard(" java "); 2)将需要放入剪贴板中的字符串封装成StringSelection对象 StringSelection st=new StringSelection(targetstr); 3)放 调用剪贴板对象的SetContents()方法将封装的方法放入剪贴板, Clipboard.setContents(st,null); 第二个参数是剪贴板的数据的所有者,一般设为null 取 clipboard.getdata(DataFlavor.StringFlavor),如果没有数据会有异常,所以取数据之前 需判断剪贴板有无数据 • 使用剪贴板传递图像 系统剪贴板: 由于JDK只提供了一个封装字符串的Transferable接口实现类,我们需要自己编写一个 imageSelection类。 使用方法与文字剪贴操作一样。
第七章 AWT组件及事件处理

文本区
TextArea():创建文本区 TextArea():创建文本区 TextArea(String s):创建默认值为s的文本区 s):创建默认值为 创建默认值为s TextArea(int x,int y):创建行、列数分别为 y):创建行 创建行、 x,y的文本区 x,y的文本区 setText(String s):将文本区设置为参数s指 s):将文本区设置为参数 将文本区设置为参数s 定的文本 getText():获取文本区文本 getText():获取文本区文本
4
Swing 和 AWT(续) AWT(
大多数 AWT组件与之相对应的 Swing 组件 AWT组件与之相对应的 的名称有前缀字母J. 例如, 的名称有前缀字母J. 例如, AWT 框架类的 对 应的 Swing 类 叫做 JFrame; AWT 按钮 类 的对应的Swing类叫做 等等. 的对应的Swing类叫做 JButton; 等等.
AbstractButton
JButton JToggleButton
JComponent
JTextComponent
JEditorPane JTextField JTextArea
JPasswordField
JLabel
JList
JComboBox
JPanel
JOptionPane JSeparator JFileChooser
第七章
AWT组件及事件处理 AWT组件及事件处理
1
基本概念
名词: 名词:
– GUI:用户图形界面 GUI: – AWT:抽象窗口工具 AWT:
Component
Button Convas Checkbox
Scrollbar List Textfield Frame
AWT组件及事件处理(三)

public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) { setBackground(Color.cyan); } else if(e.getSource()==button2) { setBackground(backColor); } } }
public void actionPerformed(ActionEvent e) {if(e.getSource() == tf) ta2.setText(tf.getText()); } public void textValueChanged(TextEvent e) {if(e.getSource() == ta1) ta2.setText(ta1.getText()); } }
CardLayout(卡片式布局)将每个组件看作一张 卡片,一个容器中可以加入多张卡片,但每次只 有一个可见。也称“多层页面设置”,它把每一 个组件都视为容器中的一层,每一个组件都会布 满整个容器。这些组件都会赋予一个名称,然后 再依这个名称来控制组件是否显示。 假设有一个容器con,使用CardLayout的一般步骤: 1、创建CardLayout布局对象 如:CardLayout card=new CardLayout(); 2、使用setLayout( )为容器设置布局 如:con.setLayout(card);
ScrollPane():创建滚动面板,滚动条初始不可见。
ScrollPane(int a) : 用指定的参数创建一个滚动 面板。a的取值为:
Scrollpane.SCROLLBARS-ALWAYS Scrollpane.SCROLLBARS-AS-NEEDED Scrollpane.SCROLLBARS-NEVER
对话框 AWT组件实践

南昌大学实验报告学生姓名:杨晖学号:8000114244 专业班级:卓越141班实验类型:□验证□综合√设计□创新实验日期:2016.11.25 实验成绩:一、实验项目名称上机实践10 对话框&& AWT组件实践二、实验目的和要求实验目的:熟悉java GUI编程三、实验步骤修改以及增加的代码已经用底色注明,请老师留意实验1 字体对话框FontDialog.javapackage实验1;import java.awt.event.*;import java.awt.*;import javax.swing.*;public class FontDialog extends JDialog implementsItemListener,ActionListener {FontFamilyNames fontFamilyNames;int fontSize=38;String fontName;JComboBox fontNameList,fontSizeList;JLabel label;Font font;JButton yes,cancel;static int YES=1,NO=0;int state=-1;FontDialog(JFrame f) {super(f);setTitle("字体对话框");font=new Font("宋体",Font.PLAIN,12);fontFamilyNames=new FontFamilyNames();setModal(true); //当前对话框调用setModal(boolean b)设置为有模式yes=new JButton("Yes");cancel=new JButton("cancel");yes.addActionListener(this);cancel.addActionListener(this);label=new JLabel("hello,奥运",JLabel.CENTER);fontNameList=new JComboBox();fontSizeList=new JComboBox();String name[]=fontFamilyNames.getFontName();fontNameList.addItem("字体");for(int k=0;k<name.length;k++)fontNameList.addItem(name[k]);fontSizeList.addItem("大小");for(int k=8;k<72;k=k+2)fontSizeList.addItem(new Integer(k));fontNameList.addItemListener(this);fontSizeList.addItemListener(this);JPanel pNorth=new JPanel();pNorth.add(fontNameList);pNorth.add(fontSizeList);add(pNorth,BorderLayout.NORTH);add(label,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(yes);pSouth.add(cancel);add(pSouth,BorderLayout.SOUTH);setBounds(100,100,280,170);setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();}public void itemStateChanged(ItemEvent e) {if(e.getSource()==fontNameList) {fontName=(String)fontNameList.getSelectedItem();font=new Font(fontName,Font.PLAIN,fontSize);}else if(e.getSource()==fontSizeList) {Integer m=(Integer)fontSizeList.getSelectedItem();fontSize=m.intValue();font=new Font(fontName,Font.PLAIN,fontSize);}label.setFont(font);label.repaint();validate();}public void actionPerformed(ActionEvent e) { if(e.getSource()==yes) {state=YES;setVisible(false); //对话框设置为不可见 }else if(e.getSource()==cancel) {state=NO;setVisible(false); //对话框设置为不可见 }}public int getState() {return state;}public Font getFont() {return font;}}按”yes”按钮之后字体对话框自动隐藏:主窗口字体发生改变7.实验后的练习给上述实验中的对话框增加设置字体的字形(常规LPAIN,加重BOLD,斜体ITALIC)功能。
Java实验报告5-AWT和swing组件的功能

实验报告课程名称: Java语言程序设计院(系):管理学院专业班级:姓名:学号:指导教师:2013年6月9日《Java语言程序设计》上机实验报告序号实验五组号 1 成绩名称图形用户界面AWT/Swing组件学时 2评阅教师签名: 2013年月日一、实验目的1.熟悉Java AWT、swing组件的功能;2.掌握常用组件的事件接口;3.会应用AWT、swing组件进行应用程序设计。
二、实验内容AWT、swing组件应用程序设计设计(完成windows计算器两种以上的运算功能)。
三、实验硬件、软件环境1.PC计算机一台,配置为CPU为P42.8G,内存为512M,硬盘为80G;2.WindowsXP + JSDK1.6 + JCreatorV4。
四、实验算法设计在设计计算其界面的基础上,添加事件监视,对按钮进行各种操作。
五、程序设计/*** @(#)Calculator.java*** @author* @version 1.00 2013/6/9*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame{private final JTextField textField;private String num="0";private String operator="+";private String result="0";public static void main(String agrs[]){Calculator frame=new Calculator();frame.setVisible(true);}public Calculator(){super();setTitle("计算器");setResizable(false);setBounds(100,100,208,242);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel viewPanel=new JPanel();add(viewPanel,BorderLayout.NORTH);textField=new JTextField();textField.setText(num);textField.setColumns(18);textField.setEditable(false);textField.setHorizontalAlignment(SwingConstants.RIGHT);viewPanel.add(textField);add(viewPanel,BorderLayout.NORTH);final JPanel clearButtonPanel=new JPanel();clearButtonPanel.setLayout(new GridLayout(1,3,5,5));add(clearButtonPanel,BorderLayout.CENTER);String[] clearButtonNames={"<-","CE","C"};for(int i=0;i<3;i++){final JButton button=new JButton(clearButtonNames[i]);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JButton button=(JButton)e.getSource();String text=button.getText().trim();if(text.equals("<-")){int length=num.length();if(length==1)num="0";else num=num.substring(0,length-1);}else if(text.equals("CE")){num="0";}else{num="0";operator="+";result="0";}textField.setText(num);}});clearButtonPanel.add(button);};final JPanel inputButtonPanel=new JPanel();final GridLayout gridLayout=new GridLayout(4,0,10,10);inputButtonPanel.setLayout(gridLayout);add(inputButtonPanel,BorderLayout.SOUTH);String[][]inputButtonNames={{"1","2","3","+"},{"4","5","6","-"},{"7","8","9","*"},{".","0","=","/"} };for(int row=0;row<4;row++){for(int col=0;col<4;col++){final JButton button=new JButton(inputButtonNames[row][col]);button.setName(row+""+col);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JButton button=(JButton)e.getSource();String name=button.getName();int row=Integer.valueOf(name.substring(0,1));int col=Integer.valueOf(name.substring(1,2));100if(col==3){count();textField.setText(result);operator=button.getText();}else if(row==3){if(col==0){if(num.indexOf(".")<0){num=num+button.getText();textField.setText(num);}}else if(col==1){if(num.indexOf(".")>0){num=num+button.getText();textField.setText(num);}else{if(!num.substring(0,1).equals("0")){num=num+button.getText();textField.setText(num);}}}else{count();textField.setText(result);operator="+";}}else{if(num.equals("0"))num=button.getText();else num=num+button.getText();textField.setText(num);}}void count(){float n=Float.valueOf(num);float r=Float.valueOf(result);if(r==0){result=num;num="0";}else{if(operator.equals("+")){r=r+n;}else if(operator.equals("-")){r=r-n;}else if(operator.equals("*")){r=r*n;}else {r=r/n;}num="0";result=r+"";}}});inputButtonPanel.add(button);}}}}六、程序测试记录及结果、运行说明七、实验总结系统的设计程序,完成程序前后关照,解决每个问题关键要求。
java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法Java语言中AWT和Swing组件是用于创建图形用户界面(GUI)的工具。
AWT(Abstract Window Toolkit)是Java最早提供的GUI工具包,而Swing是在AWT基础上进行了扩展和改进的高级GUI工具包。
本文将介绍AWT和Swing组件的基本用法。
一、AWT组件的基本用法AWT组件是Java中最基本的GUI组件,它们在不同的平台上都能够保持一致的外观和行为。
下面是AWT常用组件的基本用法:1. Frame(窗口):使用Frame类可以创建一个基本的窗口。
可以调用setTitle()方法设置窗口标题,setSize()方法设置窗口大小,setVisible()方法显示窗口。
例如:```javaFrame frame = new Frame("My Window");frame.setSize(400, 300);frame.setVisible(true);```2. Panel(面板):Panel是一个容器,用于存放其他组件。
可以使用add()方法将其他组件添加到Panel中。
例如:```javaPanel panel = new Panel();Button button = new Button("Click Me");panel.add(button);```3. Button(按钮):Button用于触发特定的动作。
可以使用addActionListener()方法为按钮添加动作监听器。
例如:```javaButton button = new Button("Click Me");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("Button Clicked");}});```4. Label(标签):Label用于显示文本信息。
java中awt的常用的用法

一、概述awt的作用1.1 awt的全称1.2 awt的定位和作用1.3 awt的优点和局限二、awt常用的组件2.1 按钮(Button)2.2 标签(Label)2.3 文本框(TextField)2.4 文本区域(TextArea)2.5 列表(List)2.6 下拉列表(Choice)2.7 复选框(Checkbox)2.8 单选按钮(RadioButton) 2.9 滚动条(Scrollbar)2.10 对话框(Dialog)2.11 框架(Frame)三、awt的布局管理器3.1 FlowLayout3.2 BorderLayout3.3 GridLayout3.4 GridBagLayout3.5 CardLayout四、awt事件处理4.1 事件概述4.2 事件监听器4.3 事件对象4.4 事件的处理五、awt绘图5.1 绘图的基本概念5.2 绘图的步骤5.3 绘制图形5.4 绘制图像5.5 绘制文本六、awt的高级应用6.1 图形用户界面(GUI)开发 6.2 多媒体处理6.3 网络编程6.4 多线程处理七、awt的实际应用7.1 GUI程序开发7.2 窗口程序设计7.3 界面美化7.4 数据展示八、结语在Java编程中,awt(Abstract Window Toolkit)是一个用于创建图形用户界面(GUI)应用程序的基本工具包。
它提供了一系列的组件、布局管理器、事件处理和绘图功能,帮助开发者快速构建可视化的程序界面。
本文将从awt的基本组件、布局管理器、事件处理、绘图以及高级应用方面进行详细介绍。
一、概述awt的作用1.1 awt的全称awt的全称是Abstract Window Toolkit,它是Java的一个基本GUI 工具包,提供了一系列的类和方法供开发者创建、管理和展示图形用户界面。
1.2 awt的定位和作用awt的定位是作为Java的标准库,为开发者提供创建GUI界面的基本工具,充分利用面向对象的思想,让开发者能够通过简单的调用API来完成复杂的图形界面设计。
AWT组件类

AWT组件类AWT(Abstract Window Tookit,抽象窗口工具集),主要包括组件(component)、容器(container)、窗口(Window)、面板(Panel)、框架(Frame)、对话框(Dialog)、标签(Label)、文本行(TextField)、按钮(Buttton),还有事件处理模型、图形和图像工具和布局管理器。
其实AWT里面的这些Frame啊之类的,感觉已经基本不用了,但是,......,还是介绍一下吧......1、组件组件(component)是构成图形用户界面的基本成分和核心元素。
组件抽象类提供组件基本的属性:如,运行时可见、位置、尺寸、字体、颜色等等属性。
也提供对组件操作的通用方法:如,设置组件位置、获得组件位置等。
组件抽象类是一个抽象类,不能实例化,其他的图形用户界面类都继承此类。
Component类声明如下:此声明已在ponent包中,使用时需要import.public abstract class Component implements ImaggeObs erver,MenuContainer,Serializable{public int getWidth();//获得组件的宽度public int getHeight();//获得组件的高度public void setSize(int x,int y);//设置组件的大小,其中x\y 分别是组件的宽度和高度public int getX();//获得组件的x坐标public int getY();//获得组件的y坐标public void setLocation(int x,int y);//设置组件的位置,其中x、y分别为坐标public void setBounds(int x,int y,int width,int height);//设置组件的x、y坐标,宽度和高度public Color getForeground();//获得组件的前景色,即字体颜色public void setForeground(Color color);//设置组件的文本颜色public Color getBackground();//获得组件的背景颜色public void setBackground(Color color);//设置组件的背景颜色public FontgetFont();//获得组件的字体public void setFont(Font font);//设置组件的字体public void setVisible(boolean visible);//设置组件是否可见public void setEnable(boolean enable);//设置组件是否有效}2、举例因为组件类为抽象类,故本例是以标签为例,说明组件类的所有方法在之后的图形用户界面中都可以使用。
awt和swing组件的基本用法

AWT和Swing都是Java中用于创建图形用户界面(GUI)的工具。
它们提供了一系列的组件和容器,可以用来创建和管理用户界面元素。
AWT(Abstract Window Toolkit)是Java提供的原始GUI工具包,它包含了许多用于创建GUI组件和容器的类。
Swing则是在AWT的基础上提供了一系列的增强功能和改进,包括更好的组件、更强大的布局管理器以及改进的事件处理等。
下面分别介绍AWT和Swing的一些基本组件和用法:AWT组件:1. 组件(Component):这是所有GUI组件的基类,包括按钮、标签、文本框等。
可以使用add()方法将组件添加到容器中。
2. 容器(Container):容器是一种特殊的组件,可以包含其他组件。
可以使用add()方法将组件添加到容器中。
3. 布局管理器(LayoutManager):布局管理器用于控制组件在容器中的布局方式。
AWT提供了几种布局管理器,如BorderLayout、FlowLayout、GridLayout等。
示例代码:```javaimport java.awt.*;import java.awt.event.*;public class MyAWTDemo {public static void main(String[] args) {Frame frame = new Frame(); // 创建一个Frame窗口frame.setTitle("JavaGUIComponent"); // 设置窗口标题 frame.setBounds(20, 30, 300, 280); // 设置窗口大小和位置frame.setVisible(true); // 设置窗口为可见Button button = new Button("Click me!"); // 创建一个按钮frame.add(button); // 将按钮添加到Frame窗口中frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件监听器public void windowClosing(WindowEvent e) {System.exit(0); // 关闭应用程序}});}}```Swing组件:1. JComponent:这是Swing中所有组件的基类,继承自AWT的Component类。
java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法AWT (Abstract Window Toolkit)是Java编程语言的一套图形用户界面(GUI)组件集,它提供了创建和管理窗口、按钮、标签等图形组件的能力。
AWT组件是依赖于操作系统的本地GUI组件。
下面是使用AWT组件的基本步骤:1.导入AWT相关的类:通常在使用AWT组件之前,需要导入`java.awt`和`java.awt.event`包中的类。
2.创建一个Frame:使用`Frame`类来创建一个顶级窗口。
3.创建其他组件:使用AWT提供的组件类(如`Button`、`Label`等)来创建其他需要的组件。
4.将组件添加到Frame:使用`add()`方法将其他组件添加到Frame中。
5.设置Frame的布局:使用`setLayout()`方法设置Frame的布局方式,如`FlowLayout`、`GridLayout`等。
6.设置Frame的大小和可见性:使用`setSize()`方法设置Frame 的大小,使用`setVisible(true)`方法设置Frame可见。
7.添加事件监听器:使用`addActionListener()`方法为按钮等组件添加事件监听器。
Swing是Java编程语言中提供的一组GUI组件,它是在AWT的基础上进行了增强和扩展。
Swing组件是纯Java组件,不依赖于操作系统的本地组件,因此具有更高的可移植性和灵活性。
下面是使用Swing组件的基本步骤:1.导入Swing相关的类:通常在使用Swing组件之前,需要导入`javax.swing`包中的类。
2.创建一个JFrame:使用`JFrame`类来创建一个顶级窗口。
3.创建其他组件:使用Swing提供的组件类(如`JButton`、`JLabel`等)来创建其他需要的组件。
4.将组件添加到JFrame中:使用`add()`方法将其他组件添加到JFrame中。
06新 AWT组件库

6.1 AWT基本组件 基本组件
6.1.4 复选框组 单选按钮 复选框组—单选按钮 创建单选按钮的构造方法是: 创建单选按钮的构造方法是: 单选按钮的构造方法是 public Checkbox (String s,CheckboxGroup c,boolean state ); 创建单选按钮的步骤 首先创建一个 首先创建一个 CheckboxGroup 对象 然后再创建各单选按钮 然后再创建各单选按钮 Page 116 例 6-4 CheckboxGroupDemo.java
6.1 AWT基本组件 基本组件
6.1.12 MenuComponent菜单组件 菜单组件 2、下拉菜单Menu 、下拉菜单 菜单的分类 tear-off 菜单:鼠标离开后,菜单内容仍显 菜单:鼠标离开后, 这种菜单比较常见。 示,这种菜单比较常见。 菜单: 非 tear-off菜单 : 鼠标离开后菜单内容不再 菜单 显示 。
6.1 AWT基本组件 基本组件
6.1.9 List列表框 列表框 2、主要方法 、 boolean allowsMultipleSelections ( ) void clear ( ) int countItems ( ) void delItem ( int position ) void delItems ( int start , int end ) Page 123 例 6-9 ListDemo.java
textArea ( Sting text , int rows , int cols , int scrollbars )
Page 122 例 6-8 TextAreaDemo.java
6.1 AWT基本组件 基本组件
6.1.9 List列表框 列表框 1、构造方法 、 public List ( ) public List ( int rows ) public List ( int rows , boolean isMultiMode )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告学生姓名:杨晖学号:8000114244 专业班级:卓越141班实验类型:□验证□综合√设计□创新实验日期:2016.11.25 实验成绩:一、实验项目名称上机实践10 对话框&& AWT组件实践二、实验目的和要求实验目的:熟悉java GUI编程三、实验步骤修改以及增加的代码已经用底色注明,请老师留意实验1 字体对话框FontDialog.javapackage实验1;import java.awt.event.*;import java.awt.*;import javax.swing.*;public class FontDialog extends JDialog implementsItemListener,ActionListener {FontFamilyNames fontFamilyNames;int fontSize=38;String fontName;JComboBox fontNameList,fontSizeList;JLabel label;Font font;JButton yes,cancel;static int YES=1,NO=0;int state=-1;FontDialog(JFrame f) {super(f);setTitle("字体对话框");font=new Font("宋体",Font.PLAIN,12);fontFamilyNames=new FontFamilyNames();setModal(true); //当前对话框调用setModal(boolean b)设置为有模式yes=new JButton("Yes");cancel=new JButton("cancel");yes.addActionListener(this);cancel.addActionListener(this);label=new JLabel("hello,奥运",JLabel.CENTER);fontNameList=new JComboBox();fontSizeList=new JComboBox();String name[]=fontFamilyNames.getFontName();fontNameList.addItem("字体");for(int k=0;k<name.length;k++)fontNameList.addItem(name[k]);fontSizeList.addItem("大小");for(int k=8;k<72;k=k+2)fontSizeList.addItem(new Integer(k));fontNameList.addItemListener(this);fontSizeList.addItemListener(this);JPanel pNorth=new JPanel();pNorth.add(fontNameList);pNorth.add(fontSizeList);add(pNorth,BorderLayout.NORTH);add(label,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(yes);pSouth.add(cancel);add(pSouth,BorderLayout.SOUTH);setBounds(100,100,280,170);setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();}public void itemStateChanged(ItemEvent e) {if(e.getSource()==fontNameList) {fontName=(String)fontNameList.getSelectedItem();font=new Font(fontName,Font.PLAIN,fontSize);}else if(e.getSource()==fontSizeList) {Integer m=(Integer)fontSizeList.getSelectedItem();fontSize=m.intValue();font=new Font(fontName,Font.PLAIN,fontSize);}label.setFont(font);label.repaint();validate();}public void actionPerformed(ActionEvent e) { if(e.getSource()==yes) {state=YES;setVisible(false); //对话框设置为不可见 }else if(e.getSource()==cancel) {state=NO;setVisible(false); //对话框设置为不可见 }}public int getState() {return state;}public Font getFont() {return font;}}按”yes”按钮之后字体对话框自动隐藏:主窗口字体发生改变7.实验后的练习给上述实验中的对话框增加设置字体的字形(常规LPAIN,加重BOLD,斜体ITALIC)功能。
可以对Font类的static常量LPAIN,BOLD,ITALIC,进行有效的运算,例如Font.BOLD+Font.ITALIC就是加重的斜体字形。
修改FontDialg.javapackage实验1;import java.awt.event.*;import java.awt.*;import javax.swing.*;public class FontDialog extends JDialog implementsItemListener,ActionListener {FontFamilyNames fontFamilyNames;int fontSize=38;String fontName,fontXing;//增加一个字形下拉框的字符串变量fontXing;JLabel label;Font font;JButton yes,cancel;static int YES=1,NO=0;int state=-1;FontDialog(JFrame f) {super(f);setTitle("字体对话框");font=new Font("宋体",Font.PLAIN,12);fontFamilyNames=new FontFamilyNames();setModal(true); //当前对话框调用setModal(boolean b)设置为有模式yes=new JButton("Yes");cancel=new JButton("cancel");yes.addActionListener(this);cancel.addActionListener(this);label=new JLabel("hello,奥运",JLabel.CENTER);fontNameList=new JComboBox();声明语句String name[]=fontFamilyNames.getFontName();fontNameList.addItem("字体");for(int k=0;k<name.length;k++)fontNameList.addItem(name[k]);fontSizeList.addItem("大小");for(int k=8;k<72;k=k+2)fontSizeList.addItem(new Integer(k));fontNameList.addItemListener(this);fontSizeList.addItemListener(this);JPanel pNorth=new JPanel();pNorth.add(fontNameList);pNorth.add(fontSizeList);pNorth.add(fontType);add(pNorth,BorderLayout.NORTH);add(label,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(yes);pSouth.add(cancel);add(pSouth,BorderLayout.SOUTH);setBounds(100,100,400,170); //加宽对话框来正常显示新增的字形下拉框setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();}public void itemStateChanged(ItemEvent e) {if(e.getSource()==fontNameList) {fontName=(String)fontNameList.getSelectedItem();font=new Font(fontName,Font.PLAIN,fontSize);}else if(e.getSource()==fontSizeList) {Integer m=(Integer)fontSizeList.getSelectedItem();fontSize=m.intValue();font=new Font(fontName,Font.PLAIN,fontSize);}else if(e.getSource() == fontType){fontXing = (String)fontType.getSelectedItem();if(fontXing.equals("常规")){font = new Font(fontName, Font.PLAIN, fontSize);}else if(fontXing.equals("加重")){font = new Font(fontName, Font.BOLD, fontSize);}else if(fontXing.equals("斜体")){font = new Font(fontName, Font.ITALIC, fontSize);}else if(fontXing.equals("常规斜体")){font = new Font(fontName, Font.PLAIN+Font.ITALIC, fontSize);}else if(fontXing.equals("加重斜体")){font = new Font(fontName, Font.BOLD+Font.ITALIC, fontSize);}}label.setFont(font);label.repaint();validate();}public void actionPerformed(ActionEvent e) {if(e.getSource()==yes) {state=YES;setVisible(false); //对话框设置为不可见}else if(e.getSource()==cancel) {state=NO;setVisible(false); //对话框设置为不可见}}public int getState() {return state;}public Font getFont() {return font;}}效果图见下页:实验2 计算平方根package实验2;import javax.swing.*;public class InputNumber {public static void main(String args[]) {double result=0;boolean inputComplete=false;while(inputComplete==false) {String str=JOptionPane.showInputDialog(null, "请输入一个正数","输入框",JOptionPane.PLAIN_MESSAGE); //弹出输入对话框try {result = Double.parseDouble(str);if(result>=0)inputComplete = true;}catch(NumberFormatException exp) {JOptionPane.showMessageDialog(null, "输入错误","警告",JOptionPane.WARNING_MESSAGE); //弹出消息对话框inputComplete = false;}}double sqrtRoot = Math.sqrt(result);System.out.println(result+"平方根:"+sqrtRoot);}}7.实验后的练习编写一个应用程序,程序运行时弹出一个输入对话框,用户使用该对话框输入一个字符串,但不允许输入的字符串的长度超过10,否则程序弹出一个消息对话框,警告出现了输入错误。