Java图形化界面设计——布局管理器之CardLayout(卡片布局)

合集下载

布局管理器主要包括

布局管理器主要包括

布局管理器主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout例3import java.awt.*;public class ExGui{private Frame f;private Button b1;private Button b2;public static void main(String args[]){ExGui that = new ExGui();that.go();}public void go(){f = new Frame("GUI example");f.setLayout(new FlowLayout());//设置布局管理器为FlowLayoutb1 = new Button("Press Me");//按钮上显示字符"Press Me"b2 = new Button("Don't Press Me");f.add(b1);f.add(b2);f.pack();//紧凑排列,其作用相当于setSize(),即让窗口尽量小,小到刚刚能够包容住b1、b2两个按钮f.setVisible(true);}}查看运行结果1. FlowLayoutFlowLayout 是Panel,Applet的缺省布局管理器。

其组件的放置规律是从上到下、从左到右进行放置,如果容器足够宽,第一个组件先添加到容器中第一行的最左边,后续的组件依次添加到上一个组件的右边,如果当前行已放置不下该组件,则放置到下一行的最左边。

构造方法主要下面几种:FlowLayout(FlowLayout.RIGHT,20,40);/*第一个参数表示组件的对齐方式,指组件在这一行中的位置是居中对齐、居右对齐还是居左对齐,第二个参数是组件之间的横向间隔,第三个参数是组件之间的纵向间隔,单位是象素。

T12_JavaGUI1

T12_JavaGUI1

Hands-On实训教程系列
图形编程的一般设计模式 顶层容器 中间级容器 组件
基本GUI组件 复杂GUI组件
顶层容器
中间级容器
GUI组件 其他容器
关系
GUI组件 GUI组件
添加
顶层容器 中间级容器
添加
添加
顶层容器
Hands-On实训教程系列
GUI基本案例1(组件-窗体)
public class MyFrame extends JFrame { //组件 private JLabel userNameLabel; private JLabel pwdLabel; private JTextField userNameTextField; private JPasswordField pwdPasswordField; private JButton confirmButton; private JButton cancelButton; //构造方法,把组件都构造出来 public MyFrame() { initComponents();//容器组合 } //窗体初始化 private void initComponents(){ userNameLabel = new JLabel("用户名:"); pwdLabel = new JLabel("密 码:"); userNameTextField = new JTextField(); pwdPasswordField = new JPasswordField(); confirmButton = new JButton("确定"); cancelButton = new JButton("取消"); this.setLayout(new GridLayout(3,2)); this.add(userNameLabel);//添加到窗体 this.add(userNameTextField); this.add(pwdLabel); this.add(pwdPasswordField); this.add(confirmButton); this.add(cancelButton); } }

《Java基础程序设计》_课后习题

《Java基础程序设计》_课后习题

第一章思考题】1、简述path 环境变量的作用。

2、请说说你对JVM 的理解。

答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。

当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。

2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。

Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。

不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。

Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

第二章【思考题】1、请简述& 与&& 的区别。

2、简述break、continue 和return 语句的区别。

【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。

如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。

2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。

当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。

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

JAVA图形界面各种布局及使用方法

JAVA图形界面各种布局及使用方法

1.布局对于JFrame窗口,默认布局是BorderLayout布局。

对于JPanel,默认布局是FlowLayout布局。

容器可以使用方法:setLayout(布局对象);来设置自己的布局。

(1)FlowLayout布局FlowLayout类创建的对象称做FlowLayout型布局。

FlowLayout类的一个常用构造方法如下:FlowLayout()该构造方法可以创建一个居中对齐的布局对象。

例如:FlowLayout flow=new FlowLayout();如果一个容器con使用这个布局对象:con.setLayout(flow);那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列。

FlowLayout布局对象调用flow.setAlignment(FlowLayout.LEFT);来设置组件靠左对齐FlowLayout布局对象调用setHgap(int hgap) 方法和setVgap(int vgap)可以重新设置布局的水平间隙和垂直间隙。

(2)BorderLayout布局BorderLayout 布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout 布局。

容器使用BorderLayout 布局,那么容器空间简单地划分为东、西、南、北、中五个区域。

每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。

每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。

(3)CardLayout 布局使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。

《Java基础入门》_课后习题答案大一计算机专业8

《Java基础入门》_课后习题答案大一计算机专业8

《Java基础入门》课后习题答案第8章GUI(图形用户界面)一、填空题1、在Java 中,图形用户界面简称: GUI2、事件监听器: 负责监听事件源上发生的事件,并对各种事件做出响应处理。

3、GUI 设计提供了一些基本的图形用户接口开发工具,如AWT:Swing 和JavaFX。

4、.如果单击Frame窗口有上角的关闭按相能将其关闭:那么这个Frame窗口添加了:WindowListener 监听器,并实现了监听器:windowClosing(WindowEvent e) 的方法。

5、创建下拉式菜单需要使用三个组件,分别是:JMenuBar、JMenu、JMenuItem二、判断题1、容器(Container)是一个可以包含基本组件和其他容器的组件。

对2.可以通过实现AetionListener 接口或者继承AconAdpter 类来实现动作事件监听器。

错3.CardLayout 布局管理器将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的。

对4.非模态对话框是指用户需要等到处理完对话框后才能继续与其他窗口进行交互。

错5.JFrame 的默认布局管理器是FlowLayout。

错三、选择题1.下面四个组件中哪一个不是JComponent 的子类? (B)A.JButtonB.JDialogC. JLabelD.JMenuBar2.下面四个选项中,哪些是事件处理机制中的角色?(多选) (ABD)A.事件B.事件源C.事件接口D.事件监听器3. ActionEvent 的对象会被传递给以下哪个事件处理器方法? (D)A.addChangeListener()B. addActionListener()C. stateChanged()D. actionPerformed()4.下面哪些是FlowLayout 类中表示对齐方式的常量?(多选) (ABD)A.FlowLayout.LEFTB.FlowLayout.CENTERC. FlowLayout. VERTICALD. FlowLayout. RIGHT5.下列选项中关于JavaFX,描述错误的是(C )A.JavaFX是一个强大的图形和多媒体处理工具包集合B. JavaFX 允许开发者来设计、创建、测试、调试和部署客户端程序C.JavaFX不能与Swing实现互操作D.JavaFX可以实现跨平台功能四、简答题1、请简述GUI 中实现事件监听的步骤:●通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的方法进行重写●创建事件源对象和事件监听器对象●调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象2、请简述Swing 中的布局管理器有哪些。

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()

java中setlayout用法

java中setlayout用法

java中setlayout用法Java中setLayout用法Java中setLayout方法是一种用来设置布局的方法,该方法可以帮助开发者在应用程序中设置组件的位置和大小。

通过使用有效的布局技术,可以更好地管理应用程序中的视觉布局,并使其更具可读性。

1. SetLayout方法的定义该方法是在Java.awt.Container类中定义的:public void setLayout(LayoutManager mgr)在这里,mgr参数是一个LayoutManager对象,它被用来管理该容器中的布局。

2. SetLayout方法的参数在Java中,setLayout方法的参数是一个youtManager类型的对象,该对象指定了容器中组件的布局方式。

常用的LayoutManager实现类有:(1) BorderLayout:边框布局,按照东西南北中5个方向进行布局(2) FlowLayout:流布局,组件按照添加的顺序从左到右排列,如果一行排不下,则自动换行(3) GridLayout:网格布局,组件按指定行列进行排列(4) CardLayout:卡片布局,一次只显示一个组件,可以通过切换卡片来显示不同的组件(5) GridBagLayout:网格袋布局,是一种非常灵活的布局方式3. SetLayout方法的使用(1) 使用BorderLayout布局方式JFrame frame = new JFrame();frame.setLayout(new BorderLayout());frame.add(new JButton("button1"), BorderLayout.NORTH);frame.add(new JButton("button2"), BorderLayout.WEST);frame.add(new JButton("button3"), BorderLayout.CENTER);frame.add(new JButton("button4"), BorderLayout.EAST);frame.add(new JButton("button5"), BorderLayout.SOUTH);(2) 使用FlowLayout布局方式JFrame frame = new JFrame();frame.setLayout(new FlowLayout());frame.add(new JButton("button1"));frame.add(new JButton("button2"));frame.add(new JButton("button3"));frame.add(new JButton("button4"));frame.add(new JButton("button5"));(3) 使用GridLayout布局方式JFrame frame = new JFrame();frame.setLayout(new GridLayout(2, 3));frame.add(new JButton("button1"));frame.add(new JButton("button2"));frame.add(new JButton("button3"));frame.add(new JButton("button4"));frame.add(new JButton("button5"));frame.add(new JButton("button6"));4. 总结使用setLayout方法可以帮助开发者更好地实现Java程序的视觉布局。

第5章 基于Swing的图形化用户界面_1布局管理器与事件处理 - 全

第5章 基于Swing的图形化用户界面_1布局管理器与事件处理  - 全
AWT ( 重量级组件)
通过 java.awt 包
创建 GUI
容器 组件 布局管理器
包含 AWT 容器组件
以图形表示的对象允许用户交互
AWT 包 含 内 容
定义 GUI 组件的位置
使用 AWT 图形方法相对于窗口绘制图形
图形和绘制方法
字体 事件
创建并构造用于选择新字体的对象 用于用户和系统交互
AWT类结构
框架JFrame


JFrame是放置其他Swing组件的顶级容器。
JFrame用于在Swing程序中创建顶层窗口。 默认情况下,框架的尺寸是没有实际意义的0X0像素。 为了设定合适的框架大小,要调用框架的setSize方法。

默认情况下,框架在创建时是不可见的。为了显示框架 ,要调用框架的setVisible方法。
AWTEvent Font Component ng.object Graphics MenuComponent 布局管理器类 Window Frame Container
Panel
Applet
Swing概述
通过 Swing (轻量级组件,纯Java组件) Javax.swing 包 创建 GUI

默认情况下,当用户关闭一个框架时,该框架会隐藏起
来,程序不会终止,调用setDefaultCloseOperation。
JFrame应用示例
创建具有以下特征的窗口: • 自定义窗口的标题; • 窗口的大小不可变(300,200); • 窗口居中显示。
标题
最大化按钮 失效
JFrame应用示例
import javax.swing.*; class App5_1 { public static void main(String[] args) { JFrame f=new JFrame("第一个Java窗口"); //创建容器 f.setSize(300,200); //设置容器大小 f.setLocationRelativeTo(null) ; //框架居中 f.setVisible(true); //设置框架可见性 f.setResizable(false); //设置不能改变框架大小 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

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中Swing五种常见的布局方式

java中Swing五种常见的布局方式

java中Swing五种常见的布局⽅式1、边界布局(BorderLayout)2、流式布局(FlowLayout)3、⽹格布局(GridLayout)4、盒⼦布局(BoxLaYout)5、空布局(null)还有其他两种布局,分别是GridBagLayout(⽹格包布局)、CardLayout(卡⽚布局)注意:JFrame和JDialog默认布局为BorderLayout,JPanel和Applet默认布局为FlowLayout边界布局⽰例代码:import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame;public class BorderLayoutExample extends JFrame{JButton btn1=new JButton("东");JButton btn2=new JButton("南");JButton btn3=new JButton("西");JButton btn4=new JButton("北");JButton btn5=new JButton("中");BorderLayoutExample(){init();this.setTitle("边界布局");this.setResizable(true);this.setSize(200, 200);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}void init(){this.setLayout(new BorderLayout(10,5)); //默认为0,0;⽔平间距10,垂直间距5this.add(btn1,BorderLayout.EAST);this.add(btn2,BorderLayout.SOUTH);this.add(btn3,BorderLayout.WEST);this.add(btn4,BorderLayout.NORTH);this.add(btn5,BorderLayout.CENTER);}public static void main(String args[]){new BorderLayoutExample();}}运⾏结果:流式布局⽰例代码:import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;public class FlowLayoutExample extends JFrame{JButton btn1=new JButton("one");JButton btn2=new JButton("two");JButton btn3=new JButton("three");JButton btn4=new JButton("four");JButton btn5=new JButton("five");FlowLayoutExample(){init();this.setTitle("流式布局");this.setResizable(true);this.setSize(200, 200);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}void init(){this.setLayout(new FlowLayout(FlowLayout.LEFT,10,5)); //默认为居中;⽔平间距10,垂直间距5 this.add(btn1);this.add(btn2);this.add(btn3);this.add(btn4);this.add(btn5);}public static void main(String args[]){new FlowLayoutExample();}}运⾏结果:⽹格布局⽰例代码:import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;public class GridLayoutExample extends JFrame{JButton btn1=new JButton("one");JButton btn2=new JButton("two");JButton btn3=new JButton("three");JButton btn4=new JButton("four");JButton btn5=new JButton("five");GridLayoutExample(){init();this.setTitle("表格布局");this.setResizable(true);this.setSize(300, 200);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}void init(){this.setLayout(new GridLayout(2,3,10,5)); //默认为1⾏,n列;2⾏3列,⽔平间距10,垂直间距5 this.add(btn1);this.add(btn2);this.add(btn3);this.add(btn4);this.add(btn5);}public static void main(String args[]){new GridLayoutExample();}}运⾏结果:盒⼦布局⽰例代码:import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JFrame;public class BoxLaYoutExample extends JFrame{JButton btn1=new JButton("one");JButton btn2=new JButton("two");JButton btn3=new JButton("three");JButton btn4=new JButton("four");JButton btn5=new JButton("five");BoxLaYoutExample(){init();this.setTitle("表格布局");this.setResizable(true);this.setSize(300, 200);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}void init(){this.setLayout(new BoxLayout(this.getContentPane(),BoxLayout.X_AXIS));//可以使⽤Box容器代替//Box box = new Box(BoxLayout.Y_AXIS);box.add(btn...);box.add(creat..);this.add(btn1);this.add(btn2);this.getContentPane().add(Box.createHorizontalStrut(10)); //采⽤x布局时,添加固定宽度组件隔开 //this.getContentPane().add(Box.createVerticalStrut(5)); //采⽤y布局时,添加固定⾼度组件隔开 this.add(btn3);this.add(btn4);this.add(btn5);}public static void main(String args[]){new BoxLaYoutExample();}}运⾏结果:空布局⽰例代码:import javax.swing.JButton;import javax.swing.JFrame;public class NullLayoutExample extends JFrame{JButton btn1=new JButton("one");JButton btn2=new JButton("two");JButton btn3=new JButton("three");JButton btn4=new JButton("four");JButton btn5=new JButton("five");NullLayoutExample(){init();this.setTitle("空布局");this.setResizable(true);this.setSize(300, 300);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}void init(){this.setLayout(null);btn1.setBounds(10, 0, 100, 50); //x坐标10,y坐标0,组件宽100,⾼50 btn2.setBounds(20, 50, 100, 50);btn3.setBounds(30, 100, 100, 50);btn4.setBounds(40, 150, 100, 50);btn5.setBounds(50, 200, 100, 50);this.add(btn1);this.add(btn2);this.add(btn3);this.add(btn4);this.add(btn5);}public static void main(String args[]){new NullLayoutExample();}}运⾏结果:。

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个像素的距离.

java考试题库第五章

java考试题库第五章

5—1 下列关于容器的描述中,错误的是DA.容器是由若干个组建和容器组成的B.容器是对图形界面中界面元素的一种管理C.容器是一种对指定宽和高的矩形范围D.容器都是可以独立的窗口5-2 下列界面元素中,不是容器的是AA。

List B.Frame C.Dialog D.Panel5-3 下列关于实现图形用户界面的描述中,错误的是DA.放在容器中的组件首先要定义,接着要初始化B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayoutC.容器中所有组件都是事件组件,都可以产生事件对象D.事件处理是忧监听者定义的方法来实现的5-4 下列关于组件类的描述中,错误的是AA.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)B.标签(Label)和按钮(Button)是组件类(Component)的子类C.面板(Panel)和窗口(Window)是容器类(Container)的子类D.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)的子类5-5 在对下列语句的解释中,错误的是Cbut.addActionListener(this);A.but是某种事件对象,如按钮事件对象B.t his表示当前容器C.A ctionListener是动作事件的监听者D.该语句的功能是将but对象注册为this对象的监听者5—6 所有事件类的父类是CA.ActionEvent B.AwtEvent C.KeyEvent D.MouseEvent5-7 所有GUI标准组件类的父类是CA.Buttom B.List C.Component D.Container5-8 下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是CA.FlowLayout B.CardLayout C.BorderLayout D.GridLayout5-9 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是D A.Window B.Dialog C.Frame D.Panel5—10 下列关于菜单和对话框的描述中,错误的是CA.Frame容器是可以容纳菜单组件的容器B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项C.对话框与Frame一样都可作为程序的最外层容器D.对话框内不含有菜单条,它由Frame弹出5—1 AWT是抽象窗口工具包的英文缩写。

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)。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 图形化界面设计——布局管理器之CardLayout(卡片布局)2017/02/17 0 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout 类提供的方法可以切换该空间中显示的组件。

1、CardLayout 类的常用构造函数及方法
2、使用CardLayout 类提供的方法可以切换显示该空间中的组件
方法一步骤:
(1)定义使用卡片布局的容器
例如:Panel cardPanel=new Panel();
(2)定义卡片对象:CardLayout 布局对象名称=new CardLayout();
例如:CardLayout card=new CardLayout();
(3)设置使用卡片布局的容器为卡片布局:
格式:容器名称.setLayout(布局对象名称);
例如:cardPanel.setLayout(card);
(4)设置容器中显示的组件
例如:for (int i = 0; i i++) {
cardPanel.add(newJButton(“按钮”+i));
}
(5)定义响应事件代码,让容器显示相应的组件
格式:
n 布局对象名称.next(容器名称) 显示容器中当前组件之后的一个组件,若当前组件为最后添加的组件,则显示第一个组件,即卡片组件显示是循环的。

相关文档
最新文档