CardLayout布局管理器的使用

合集下载

constraintlayout 堆叠顺序

constraintlayout 堆叠顺序

constraintlayout 堆叠顺序ConstraintLayout 堆叠顺序ConstraintLayout 是一个强大的布局管理器,它允许您以灵活的方式在 Android 应用程序中组织视图。

其中一个重要的特性是它的堆叠顺序,这决定了视图在屏幕上的渲染顺序。

了解 ConstraintLayout 的堆叠顺序可以帮助您更好地控制视图在界面上的布局和表现。

在 ConstraintLayout 中,视图的堆叠顺序是由其在父布局中的 Z-Index 值决定的。

Z-Index 值表示视图在垂直轴上的层次顺序。

具有较高 Z-Index 值的视图将显示在较低 Z-Index 值的视图之上。

Z-Index 值可以在 ConstraintLayout 的 XML 文件中通过 android:zIndex 属性进行设置。

要更改视图的堆叠顺序,您需要修改其 Z-Index 值。

较高的 Z-Index 值将使视图显示在其他视图之上。

您可以根据需要设置任何有效的浮点数作为 Z-Index 值,较高的值将产生更高的层。

请注意,Z-Index 只对重叠的视图起作用,对于没有重叠的视图,它们的显示顺序由其在布局中的位置决定。

在处理堆叠顺序时,有几个注意事项。

首先,具有较高 Z-Index 值的视图将覆盖在具有较低 Z-Index 值的视图中。

这可能会对性能产生影响,特别是当大量视图重叠时。

因此,在设计布局时,应尽量减少重叠视图的数量。

此外,Z-Index 值只影响重叠的视图。

如果两个视图没有重叠,它们的显示顺序将由其在布局中的位置决定。

在 ConstraintLayout 中,子视图按照它们在 XML 文件中的出现顺序进行布局,从上到下,从左到右。

因此,在非重叠情况下,较晚添加到布局中的视图将显示在较早添加的视图之上。

最后,请注意,Z-Index 值仅在ConstraintLayout 中有效。

在其他布局管理器中,如LinearLayout 或 RelativeLayout,Z-Index 不起作用。

图形界面开发基础

图形界面开发基础

10.3.4 列表
❖ 列表List组件可以列举多个可供选择 的文本选项。其中包括有单选和多选两 种方式。所列举出来的选项是分为多行 显示,而且ቤተ መጻሕፍቲ ባይዱ允许选择,不允许对选项 进行修改。
10.4 布局管理器
❖ 布局管理器就是用来对容器中的组件 进行布局。也就相当于一个装修房屋, 什么地方该放沙发,什么地方放茶几等, 而且还有要放置多大的沙发、茶几等一 些家具。布局管理器可以设置组件的大 小和位置。每一个容器在创建的时候都 会有一个默认的布局管理器。
10.3 组件
❖ 构成图形用户界面的基本元素就是组 件。组件就相当于人体中的细胞一样。
10.3.1 按钮和标签
❖ 按钮(Button)和标签(Label)是 图形界面中比较常用的组件,用户可以 根据标签的提示单击按钮来触发一系列 的动作。其中最常见的就是登陆框,在 输入框左边的就是标签,填写完成后, 可以单击下面的“登陆”按钮进行登陆。
10.3.2 复选框
❖ 复选框是Checkbox,属于一种选择 按钮,可以供用户进行相关选项的选择。 如果要实现多选一,需要结合 CheckboxGroup类使用;如果实现多选 按钮,就不需要给多个Chekbox设置分 组。
10.3.3 文本域
❖ 文本域(TestField)顾名思义就是用 来书写文字的组件。文本框中提供了文 本的编辑功能,TextField的一些常用方 法如下所示。
10.1 AWT简介
❖ AWT是抽象窗口工具箱,其中包括了 图形界面开发的基本类库。如果将图形 界面开发作为一幅图画的创作的话,那 么AWT就相当于画画所使用到的水彩笔 工具包,在这里面有多种能够使用到, 或者可以进行搭配的颜色笔。
❖ 在AWT中主要包括容器、布局管理器、 事件处理、基本组件四部分。它们各自 有不同的作用。

qt里setlayout用法

qt里setlayout用法

Qt里setLayout用法在Qt中,setLayout是一种常用的布局管理器函数,用于设置窗口或窗口部件的布局。

布局管理器是一种用于自动调整窗口部件位置和大小的工具,可以使界面更加灵活和适应不同的窗口尺寸。

本文将详细介绍Qt中setLayout的用法,包括创建布局管理器、设置布局管理器、添加和删除窗口部件等操作。

1. 创建布局管理器在使用setLayout之前,我们首先需要创建一个布局管理器。

Qt提供了几种常用的布局管理器,包括垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)、网格布局(QGridLayout)等。

1.1 垂直布局(QVBoxLayout)垂直布局将窗口部件按照垂直方向依次排列,可以使用QVBoxLayout类来创建垂直布局管理器。

QVBoxLayout *layout = new QVBoxLayout();1.2 水平布局(QHBoxLayout)水平布局将窗口部件按照水平方向依次排列,可以使用QHBoxLayout类来创建水平布局管理器。

QHBoxLayout *layout = new QHBoxLayout();1.3 网格布局(QGridLayout)网格布局将窗口部件按照网格形式排列,可以使用QGridLayout类来创建网格布局管理器。

QGridLayout *layout = new QGridLayout();1.4 其他布局管理器除了上述常用的布局管理器,Qt还提供了一些其他的布局管理器,如堆叠布局(QStackedLayout)、表单布局(QFormLayout)等,根据实际需求选择合适的布局管理器。

2. 设置布局管理器创建布局管理器后,我们需要将其设置给窗口或窗口部件,以便布局管理器能够对窗口部件进行布局。

QWidget *widget = new QWidget();widget->setLayout(layout);在上述代码中,我们创建了一个QWidget对象widget,并通过setLayout函数将布局管理器layout设置给widget。

JavaGUI布局管理器

JavaGUI布局管理器

JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。

三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。

2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。

当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。

也可以⼀个都不放。

3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。

AWT图形用户界面.ppt

AWT图形用户界面.ppt
也可以使用字符串“North”、“South”、“West”、 “East”和“Center”来标明。
BorderLayout是Frame和Dialog的默认布局管理器。
创建布局管理器对象:
public BorderLayout() 构造一个组件之间没有间距的新边框布局
public BorderLayout (int hgap,int vgap)
f.setLayout(null);//设置Frame的布局管理器为null f.setBounds(200,200,300,300); f.setBackground(Color.BLUE);//设置Frame背景色
p.setBounds(50,50,200,200); p.setBackground(Color.CYAN);//设置Panel背景色
} } class MultiFrame extends Frame{
static int id = 0; MultiFrame(int x,int y,int w,int h,Color color){
super("Frame " + (++id));//设置Frame的标题 setBackground(color); //设置背景色 setLayout(null);//设置布局管理器为null setBounds(x,y,w,h);//设置Frame窗体位置和大小 setVisible(true);//设置Frame可见 } }
FlowLayout(流式布局) BorderLayout(边界布局) GridLayout(网格布局) CardLayout(卡片布局) GridBagLayout
7.2.1 FlowLayout 流布局管理器

第十二章.swing基础

第十二章.swing基础

Slide 19 of 44
边框布局介绍
边框布局是通过BorderLayout类创建的。BorderLayout类具有两个构造器, 一个是无参构造器,另一个是指定控件间间距的构造器,通常使用无参构造 器来创建边框布局管理器。 在前面将控件添加到容器中都是通过add方法,将控件作为add方法的参数来 进行添加的。但是在向边框布局容器中添加控件时,这样是不完全的。在向 边框布局容器中添加控件是使用具有两个参数的add方法。其中第一个参数表 示要添加的控件,第二个参数表示要添加到边框布局中的哪一个位置。边框 布局的位置表示是通过常量来表示的,具体常量如表所示。
Slide 1 of 44
JFrame窗口类
在Swing程序中,窗口是一个容器,在该容器中可以放其他一些组件。学习 JFrame窗口类是学习其他组件的基础。在Swing程序中创建窗口可以使用继承 JFrame类来完成。 setResizable(false);//设置窗口不能被调整大小 提示:在JFrame窗口类中还有一个setUndecorated方法,使用该方法可以将 窗体的边框和标题栏去掉
Slide 4 of 44
JPanel面板类简介
JPanel面板类是一个非顶级容器,使用JPanel面板类可以搭建一个子界面。 JPanel面板类同样具有四种构造器,最常用的仍然是无参构造器。使用有参 构造器可以在初始时设置面板采用什么布局管理器和是否使用双缓冲。 JPanel面板类本身没有特殊功能,它的作用就是作为非顶级容器来添加普通 控件,搭建子界面。所以JPanel面板类的方法也是很少很简单的。首先 JPanel面板类具有一个添加控件的add方法,使用该方法能够将普通控件添加 到面板中。getHeight方法和getWidth方法分别是返回当前面板的高度和宽度。 提示:JPanel面板类还有一个setToolTipText方法,该方法具有一个字符串 参数,该方法的作用主要是当鼠标指针停留在面板上时显示文本,字符串内 容就是要显示的内容。

framelayout参数

framelayout参数

framelayout参数FrameLayout是Android中的一种布局容器,可以用来放置和管理子视图。

在FrameLayout 中,子视图会按照它们的顺序进行叠放,后面添加的子视图会盖在前面的子视图之上。

下面是一些常用的FrameLayout参数:1.`layout_width`:设置FrameLayout的宽度,可以使用具体的像素值(例如`200dp`)或者布局参数(例如`wrap_content`、`match_parent`)。

2.`layout_height`:设置FrameLayout的高度,可以使用具体的像素值或者布局参数。

3.`layout_gravity`:设置子视图在FrameLayout中的对齐方式。

可以使用以下常见的值:- `top`:将子视图对齐到FrameLayout的顶部。

- `bottom`:将子视图对齐到FrameLayout的底部。

- `left`:将子视图对齐到FrameLayout的左侧。

- `right`:将子视图对齐到FrameLayout的右侧。

- `center`:将子视图在FrameLayout中水平和垂直居中。

4.`layout_margin`:设置子视图与FrameLayout之间的边距。

可以使用具体的像素值(例如`10dp`)或者布局参数。

5.`foreground`:设置FrameLayout的前景视图,可以是一个颜色、Drawable或者是一个视图。

这些是FrameLayout中一些常用的参数,可以根据具体的布局需求来选择使用。

通过合理设置这些参数,可以实现灵活的布局和视图管理。

请注意,上述参数也适用于其他布局容器,如LinearLayout和RelativeLayout,但具体含义和效果可能有所不同。

Java swing布局详解(附示例图)

Java swing布局详解(附示例图)

当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。

JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。

下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。

代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。

这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。

Java代码1public static void addComponentsToPane(Container pane) {。

}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。

4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。

16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。

Java语言程序设计 第三版-习题答案

Java语言程序设计 第三版-习题答案

第一章绪论1.简述Java技术体系的组成。

Java技术体系主要由三部分组成:Java平台标准版Java SE,Java平台企业版Java EE,以及Java 平台微缩版Java ME。

Java SE为Java桌面和工作组级应用的开发与运行提供了环境。

它的实现主要包括Java SE Development Kit(JDK)和Java SE Runtime Environment(JRE)。

Java SE提供了编写与运行Java Applet与Application的编译器、开发工具、运行环境与Java API。

Java EE 定义了基于组件的多层企业级应用的开发标准,面向企业级和高端服务器的Internet应用开发。

它基于Java SE,包括Enterprise JavaBeans(EJB),Java Servlets API以及Java Server Pages(JSP)等技术,并为企业级应用的开发提供了各种服务和工具。

Java ME是针对消费类电子设备如移动电话、电视置顶盒、汽车导航系统等的嵌入式计算的一组技术和规范。

2.Java的特征有哪些?简述这些特征的含义。

Java语言的特征包括:简单(Simple)、面向对象(Object oriented)、分布式(Distributed)、解释型(Interpreted)、健壮(Robust)、安全(Secure)、体系结构中立(Architecture neutral)、可移植(Portable)、高性能(High performance)、多线程(Multithreaded)和动态(Dynamic)●简单性:Java语言语法和语义都比较单纯,容易学习和使用。

另外,去掉C++中的指针,取消多重继承和运算符重载,内存管理由程序员移向Java内嵌的自动内存回收机制等●面向对象:作为一种面向对象的编程语言,Java不仅最为“纯洁”,也对面向对象方法学的支持也最为全面。

java培训笔记(详细)版含作业练习-图形界面详解

java培训笔记(详细)版含作业练习-图形界面详解

四. 创建GUI 步骤三:在容器中加入组件
五. 创建GUI 步骤四:创建事件处理器
六. FlowLayout流式布局管理器
最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。
FlowLayout允许以左对齐、居中对齐(默认方式)或右对齐的方式排列组件。特性:
. 不限制它所管理的组件的大小, 而是允许它们有自己的最佳大小。
. 当容器被缩放时,组件的位置可能会变化,但组件的大小不改变。
FlowLayout的构造方法如下:
java.awt包中提供了一个抽象类Component,它是所有除了菜单类组件之外的AWT组件的父类。Container类表示容器,继承
了Component类。容器用来存放别的组件, 有两种类型的容器:Window和Panel。
1. Window和它的子类Frame
Insets getInsets() :返回容器的边框尺寸的大小
Validate():使容器内修改过的组件生效
三. 创建GUI 步骤二:布局管理器
组实例,通过它来自动进行组件的
南北区域的组件保持最佳高度,宽度被水平拉伸至和所在区域一样宽;
位于中区域的组件的宽度和高度都被拉伸至和所在区域一样大小。
. 垂直拉伸,东、西和中区域也拉伸;
水平拉伸,南、北和中区域也拉伸;
. 中区域没有组件,也会分配空间显示容器的背景颜色;
f.setBackground(Color.BLUE);
f.setVisible(true);
}
}
Index:组件存放的位置
constraints:通常是布局管理器的对象
Component getComponent()

15.1 图形用户界面设计

15.1 图形用户界面设计

中间容器
面板JPanel 盒子Box 滚动窗格JScrollPane 把组件放到一个滚动窗格中 ,通过滚动条操作组件。 JScrollPane scroll=new JScrollPane(new JTextArea()); 拆分窗格JSplitPane JSplitPane(int a,Component b,Component c) HORIZONTAL_SPLIT、 VERTICAL_SPLIT 分层窗格JLayeredPane add(JComponent com, int layer); DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER 、POPUP_LAYER、DRAG_LAYER Java技术及其应用
Java技术及其应用
布局管理器LayoutManager
容器可以使用方法: setLayout(布局对象); 设置自己的布局。 FlowLayout BorderLayout GridLayout CardLayout BoxLayout---Swing提供 null
FlowLayout
JPanel默认布局:组件按照加入的先后顺序从左 到右排列,一行排满之后再转到下一行继续,每 一行居中。 FlowLayout flow=new FlowLayout(); frame.setLayout(flow);
Java技术及其应用
BorderLayout
Window(子类JFrame,JDialog)默认布局 BorderLayout border=new BorderLayout(); frame.setLayout(border);
Java技术及其应用
JFrame
JDK1.5 add() remove() setLayout() 三个函数,可以由frame直接调用,等价于 frame.getContentPane()调用。 例如: frame.add(); 等价于 frame.getContentPane().add();

Java程序设计单元测试四与答案

Java程序设计单元测试四与答案

一、单选题1、所有GUI标准组件的父类是()A.ButtonB.ListC.Containerponent正确答案:D2、用于获得用户输入的多行文本信息的swing组件类是()。

A.JTextAreaB.JLabelC.JListD.JTextField正确答案:A3、判断单选按钮、复选框是否被选中,可以使用()。

A.Select属性B.isSelected属性C. select方法D.isSelected方法正确答案:D4、Frame默认的布局管理器是()。

A.GridLayoutB.FlowLayoutC.CardLayoutD.BorderLayout正确答案:D5、在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是()包。

A.java.appletB.java.ioC.java.awt.eventD.java.awt正确答案:D6、下列Java常见事件类中哪个是鼠标事件类()。

A.MouseEventB.WindowEventC.InputEventD.KeyEvent正确答案:A7、如果有多个窗体处于显示状态,使用下面的哪个方法仅关闭当前窗体,而不会同时关闭其他窗体?A.disposeB.hideC.closeD.exit8、颜色选择对话框JColorChooser的返回值是哪个类型?A.colorB.intC.RGBD.Color正确答案:D9、下列那种java组件为容器组件A.JChoiceB.JListC.JPanelD.JMenuItem正确答案:C二、判断题1、AWT的全称是abstract window toolkit。

正确答案:√2、Java的图形用户界面不可以跨平台运行。

正确答案:×3、设计和实现图形界面包括创建组件、指定布局、响应事件这几个步骤。

正确答案:√4、Panel是一种非容器组件。

5、实现顶层容器的类是Window。

正确答案:√6、组件是一个以图形方式显示在屏幕上并能与用户进行交互的对象。

Java程序设计图形用户界面ppt课件

Java程序设计图形用户界面ppt课件
* GridBagLayout 布局管理器
▪ AWT中最灵活、最复杂的布局管理器,各组件所占空 间可以不相同且灵活规定,参见参考书及API文档;
.
17
第10章 图形用户界面
容器的嵌套使用举例
范例:NestedContainer.java
.
18
第10章 图形用户界面
默认布局管理器
Component Container
些空的方法体。
.
27
第10章 图形用户界面
10.3.4 内部类及匿名类在事件处 理中的应用
在Java事件处理程序中,由于与事件相关的事件 监听器的类经常局限于一个类的内部,所以经常 使用内部类。而且定义的内部类在事件处理中的 使用就实例化一次(在其他地方不会用到该类,所 以不需要类名),所以经常使用匿名类。
.
25
第10章 图形用户界面
10.3.2 事件监听器的注册
注册事件监听器只需要使用组件对象的 addXXXXEvent方法,它可以指明该对象感兴趣的 事件监听器(即实现了某个AWTEventListener子 接口的对象)。这样,当事件源发生了某种类型 的事件时,则触发事先已注册过的监听器中相应 的处理程序。
Window
Frame
Dialog
Panel Applet
BorderLayout
FlowLayout
.
19
第10章 图形用户界面
布局管理器总结(1)
▪ Frame
Frame是一个顶级窗口。 Frame的缺省布局管理器为BorderLayout。
▪ Panel
Panel无法单独显示,必须添加到某个容器中。 Panel的缺省布局管理器为FlowLayout。 当把Panel作为一个组件添加到某个容器中后,该Panel仍然可以

JAVA布局

JAVA布局
card.next(panelMain); //下一个
card.previous(panelMain); /n); //第一个
示例:
import java.awt.*;
public class buttonDir{
public static void main(String args[]){
Frame f = new Frame("BorderLayout");
GridBagConstraints.NONE:以最小尺寸显示组件;
GridBagConstraints.HORIZONTAL:组件沿水平方向伸展;
GridBagConstraints.VERTICAL:组件沿垂直方向伸展。
约束anchor决定单元格如何显示。 auchor取值GridBagConstraints中的四个类变量:
CardLayout(卡式布局)
CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其实现过程如下:
JPanel panel= new JPanel(new FlowLayout(FlowLayout.LEFT)));
此为小应用程序(Applet)和面板(Panel)的缺省布局管理器,组件从左上角开始,按从左至右的方式排列.其构造函数为:
FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离.

Swing基础

Swing基础

Swing基础知识集合一、JFrame窗体窗体是一个组件容器,所有组件都必须有窗体去承载它们。

JFrame窗体类包含一个容器类,所有设置在窗体上的组件实际上都是放置在这个容器类中的。

这个容器作为JFrame类的一个封装属性,通过getContentPane()方法可以获取它。

如:JFrame jf = new JFrame();Container container = if.getContentPane();Swing窗体包含很多层,通常与组件和容器相关联,所以在JFrame对象创建完成后,需要调用getContentPane()方法获取窗体的组件容器,然后在容器中添加组件或设置布局管理器,通常这个容器用来包含和显示组件。

如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。

Swing是单线程的,所有与组件绘制有关的操作都必须在单一线程中完成,这个线程就是事件队列线程。

EventQueue类的invokeLater()方法可以将Swing 组件相关操作的线程加入事件队列中,这样可以把界面绘制与业务处理线程分开。

二、常用布局管理器(一)绝对布局使用绝对布局的步骤:(1)使用Container.setLayout(null)方式取消布局管理器(2)使用Component.setBounds()方法来设置每个组件的大小与位置在使用绝对布局之前,需要调用容器的setLayout(null)方法告知编译器这里不再使用布局管理器。

其中,JFrame窗体需要调用getContentPane()方法获取窗体容器,再设置容器的布局方式。

(二)流布局管理器——FlowLayout布局像“流”一样按指定的方向摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。

流布局用于安排有向流中的组件,这非常类似于段落中的文本行。

流的方向取决于容器的componentOrientation 属性,它可能是以下两个值中的一个:∙ComponentOrientation.LEFT_TO_RIGHT∙ComponentOrientation.RIGHT_TO_LEFT流布局一般用来安排面板中的按钮。

3ATWSwing事件处理

3ATWSwing事件处理

3ATWSwing事件处理AWT(AbtractWindowingToolkit)是用来创建Java图形用户界面的基本工具.JavaSwing是JFC(JavaFoundationClae)的一部分,它可以弥补AWT的一些不足.Container(容器):扩展组件的抽象基本类,例如Panel、Applet、Window、Dialog和Frame等是由Container演变的类,容器中可以包括多个组件。

LayoutManager(布局管理器):定义容器中组件的摆放位置和大小接口。

Java中定义了几种默认的布局管理器。

Graphic(图形):组件内与图形处理相关的类,每个组件都包含一个图形类的对象。

1组件",ColorgetForeground():获取组件的前景色。

",StringgetName():获取组件的名称。

",DimeniongetSize():以Dimenion对象的形式返回组件的大小。

",voidpaint(Graphicg):绘制该组件。

",voidrepaint():重绘组件。

",voidupdate(Graphicg):更新该组件。

",voidetViible(booleanb):根据参数的值显示或隐藏此组件。

",voidetSize(intwidth,intheight):调整组件的大小,使其宽度和高度分别为width和height。

",voidetName(Stringname):将组件的名称设置为指定的字符串。

",voidetForeground(Colorc):设置组件的前景色。

AWT的组件库画布(Canva)是处于屏幕上的一个空白矩形区域,在该区域可以绘图,也可以获得用户激发的事件。

画布组件可以监听鼠标事件和键盘事件。

publicvoidpaint(Graphicg)由于画布的paint()方法默认操作是清除画布,所以重写此方法的应用程序不需要调用uper.paint(g)。

Java图形化界面编程介绍

Java图形化界面编程介绍

Java图形化界⾯编程介绍⽬录1.内容概述2.容器Container2.1Window2.2Panel2.3ScrollPane2.4Box3.布局管理器3.1FlowLayout3.2BorderLayout3.3GridLayout3.4Cardlayout4.AWT基本组件5.事件处理6.开发⼀个简单计算器1.内容概述 先谈谈个⼈对图形化界⾯编程的认识,图形化界⾯编程可以直接的看到每⼀步操作带来的效果,相对于传统编程盯着⿊框框学起来是⾮常⾮常有意思的。

 再谈谈最后的效果,界⾯是由窗⼝和组件构成的。

⽽组件在窗⼝内的排列并不是没有章法可⾔,依赖于布局管理器使组件以合适的位置以及合理的排布呈现。

排布于窗⼝内的组件⼜可以通过事件监听器与⽤户进⾏交互…2.容器Container 什么是容器?容器是特殊的组件。

容器是⽤来装东西的,不仅可以存放组件,也可以⽤来存放容器,⽽存放的容器⼜可以存放容器或组件。

听起来有点反复套娃,但学起来还是很容易的!2.1Window Window是可以独⽴存在的顶级窗⼝,其默认使⽤BorderLayout布局管理器。

 frame.setLocation(500,300)⽅法⽤来设置窗⼝的位置,通常计算机的远点坐标在左上⾓。

 frame.setSize(500,300)⽅法⽤来设置窗⼝的尺⼨。

 frame.setVisible(true)设置窗⼝是否可见。

运⾏效果(使⽤Frame来创建⼀个窗⼝): 注意此时的窗⼝不能通过单击右上⾓的’X’关闭窗⼝,只能⼿动结束程序,因为还没有加⼊事件监听机制。

代码:import java.awt.*;public class WindowDemo {public static void main(String[] args) {//创建⼀个窗⼝对象Frame frame = new Frame("测试Window窗⼝");//指定窗⼝的位置和⼤⼩frame.setLocation(500,300);frame.setSize(500,300);//设置窗⼝可见frame.setVisible(true);}}2.2Panel Panel是内嵌式容器,必须内嵌于其它容器中使⽤,不能独⽴存在。

java中swing的用法

java中swing的用法

java中swing的用法Swing是Java中的一种GUI(图形用户界面)工具包,它是基于AWT(抽象窗口工具箱)开发的。

和AWT不同的是,Swing使用了Java 2D API来实现自己的用户界面元素,这使得Swing的外观和感觉更加现代化,更加灵活。

2. Swing的优点Swing的优点主要有以下几点:- 跨平台性:Swing是基于Java开发的,因此可以在任何支持Java的平台上运行,如Windows、Linux、Unix等。

- 灵活性:Swing提供了丰富的组件,开发者可以通过组合不同的组件来创建非常复杂的用户界面。

- 动态性:Swing提供了一些动画和效果来增强用户体验。

- 可定制性:Swing的外观和感觉可以通过使用不同的Look and Feel来改变,而这些Look and Feel可以在运行时动态地切换。

- 易学易用:Swing的API设计合理,很容易学习和使用。

3. Swing的组件Swing提供了很多组件,下面列举了一些常用的组件:- JLabel:标签组件,用于显示文本或图像。

- JButton:按钮组件,用于触发事件。

- JTextField:文本框组件,用于输入文本。

- JPasswordField:密码框组件,用于输入密码。

- JTextArea:文本域组件,用于显示多行文本。

- JList:列表组件,用于显示列表数据。

- JTable:表格组件,用于显示表格数据。

- JComboBox:下拉列表组件,用于选择一个选项。

- JCheckBox:复选框组件,用于选择多个选项中的一个或多个。

- JRadioButton:单选按钮组件,用于选择一个选项。

4. Swing的布局管理器在Swing中,布局管理器用于控制组件的排列。

Swing提供了多种布局管理器,下面列举了一些常用的布局管理器:- BorderLayout:边框布局管理器,将容器分成5个区域:北、南、东、西、中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JButton b2 = new JButton("b2");
JButton b3 = new JButton("chose b2");
JButton b4 = new JButton("chose b1");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
*所有已实现的接口:
*LayoutManager, LayoutManager2, Serializable
*
*--------------------------------------------------------------------------------
*
*public class CardLayoutextends Objectimplements LayoutManager2, SerializableCardLayout 对象是容器的布局管理器。它将容器中的*每个组件看作一张卡片。一次只能看到一张卡片,容器则充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可*见组件。
p1.add(p3,"b3");
p2.add(b3);
p2.add(b4);
p3.setBackground(Color.black);
p4.setBackground(Color.green);
p1.setBackground(Color.blue);
p1.setLayout(layout);
con.add(p2,BorderLayout.SOUTH);
con.add(p1,BorderLayout.CENTER);
p3.add(b1);
p4.add(b2);
p1.add(p4,"b4");
*
*卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示*指定的卡片。addLayoutComponent(ponent, ng.Object) 方法可用于将一个字符串标识符与给定卡片关联,以便进行快*速随机访问。
p2.setBackground(Color.red);
// MyActionListener myActionListener = new MyActionListener();
b3.addActionListener(this);
b4.addActionListener(this);
g.drawOval(50,50,50,50);
}*/
}
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Text1 extends JFrame implements ActionListener{
JButton b1 = new JButton("b1");
{
if(e.getSource()==b3)
{
layout.show(p1,"b3");
//layout.show(p1,"b4");
}
else layout.show(p1,"b4");
}
setVisible(true);
setDefaultCloseOperation(3);
//class MyActionListener implements ActionListener
//{
//}
}
public void actionPerformed(ActionEvent e)
/**
* @(#)Text1.java
*
*
* @author qch
* @version 1.00 2011/10/1
*/
/**
*java.awt
*类 CardLayout
*ng.Object
* java.awt.CardLayout
}
public Text1()
{
super("buttonDemo");
setSize(300,300);
con=getContentPane();
con.setLayout(new BorderLayoLayout(20,20);
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
Container con;
CardLayout layout;
public static void main(String args[])
{
new Text1();
/*public void paint(Graphics g)
{
setForeground(Color.red);
Graphics gp = p1.getGraphics();
gp.drawRect(30,30,30,30);
setForeground(Color.blue);
相关文档
最新文档