Java三大布局介绍
- 格式:doc
- 大小:64.50 KB
- 文档页数:3
在前⾯的例⼦中,使⽤到了FlowLayout布局管理器。
FlowLayout型布局管理器对容器中组件进⾏布局的⽅式是将组件逐个地安放在容器中的⼀⾏上。
⼀⾏放满后就另起⼀个新⾏。
FlowLayout有三种构造⽅法: public FlowLayout() public FlowLayout(int align) public F10wLayout(int align,int hgap,int vgap) 在默认情况下,FlowLayout将组件居中放置在容器的某⼀⾏上,如果不想采⽤这种居中对齐的⽅式,考试,⼤提⽰FlowLayout的构造⽅法中提供了⼀个对齐⽅式的可选项align。
使⽤该选项,可以将组件的对齐⽅式设定为左对齐或者右对齐。
align的可取值有FlowLayout.LEFT,FlowLayout.RIGHT和FlowLayout.CENTER三种形式,它们分别将组件对齐⽅式设定为左对齐、右对齐和居中,例如: new FlowLayout(FlowLayout.LEFT)这条语句创建了⼀个使⽤左对齐⽅式的FlowLayout的实例。
此外,FlowLayout的构造⽅法中还有⼀对可选项hgap和vgap,使⽤这对可选项可以设定组件的⽔平间距和垂直间距。
与其他布局管理器不同的是,FlowLayout布局管理器并不强⾏设定组件的⼤⼩,⽽是允许组件拥有它们⾃⼰所希望的尺⼨。
注意:每个组件都有⼀个getPreferredSize()⽅法,容器的布局管理器会调⽤这⼀⽅法取得每个组件希望的⼤⼩。
下⾯是⼏个使⽤setLayout()⽅法实现FlowLayout的例⼦: setLayout(new FlowLayout(FlowLayout.RIGHT,20,40)); setLayout(new FlowLayout(FlowLayout.LEFT)); setLayout(new FlowLayout());。
JavaWeb三⼤组件1.javaweb三⼤组件:servlet,listener,filter;都需要在web.xml中配置(除了两个感知监听器)。
2.服务器端⼩程序每个Servlet都是唯⼀的,能处理的请求是不同的(⽐如登录,查询);前⾯的调度由tomcat完成;要完成获取请求数据,处理请求,完成响应的任务。
3.实现servlet的三种⽅法:javax.servlet.Servlet接⼝,GenericServlet抽象类(service⽅法待实现),HttpServlet类(常⽤)。
4.Servlet接⼝5⼤⽅法:其中3个⽣命周期⽅法不由我们来调⽤,由Tomcat调⽤;对象也不⽤我们来创建,Tomcat创建。
4.1:init(ServletConfig):⽣命周期⽅法,在对象创建之后只执⾏⼀次;当第⼀次被请求才被创建;4.2:destroy():⽣命周期⽅法,在servlet对象被销毁之前调⽤,只调⽤⼀次;⽐如IO流等释放(很少);服务器被关闭时调⽤;4.3:service(ServletRequest,ServletResponse):⽣命周期⽅法,被调⽤多次⽤来处理请求;4.4:getServletConfig()(有⽤),getServletInfo()(⽆⽤)。
5.浏览器如何访问Servlet:必须把Servlet绑定到⼀个路径(web.xml配置):<servlet>name,class</servlet>,<servlet-mapping>name,url-pattern</servlet-mapping>,其中pattern必须/开头。
6.Servlet单例,线程不安全,效率⾼。
7.ServletConfig接⼝:对应的就是web.xml⾥的本Servlet的配置信息被xml解析器解析后,加载到⾥⾯;返回的实例的实现类是Tomcat提供的;7.1:getServletName()(⼏乎没⽤);7.2:getServletContext()(有⽤);7.3:getInitParameter[Names()]:初始化参数相关8.ServletRequest(Tomcat封装的请求信息),ServletResponse(设置状态码,设置响应头,发送html代码)。
java 流动布局
这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了再换到下一行,然后继续从左到右排列。
每一行的组件都是居中排列的。
另外如果有些按钮看不到,可以调整Frame的大小,使得所有控件都显示出来。
FlowLayout布局管理器同样是通过先创建对象、再利用其内置方法和变量来布局的组件。
以下是构造该布局的三种方法:
●FlowLayout( ) 构造一个FlowLayout对象,它是居中对齐的,默认的水平和垂直间隙
是5个单位。
●FlowLayout(int align) 构造一个FlowLayout对象,默认的水平和垂直间隙是五个单位。
●FlowLayout(int align,int h,int v) 创建一个新的流布局管理器,它具有指定的对齐方式以
及指定的水平和垂直间隙。
在下列的实例中,将面板的布局方式设置为FlowLayout,再创建5个按钮,来
通过上述代码,可以看出流式布局把添加到布局中的按钮组件按照先来在前后来排后的顺序来摆放,如图9-21所示。
当摆放过程,若空间不足优先摆放先添加到管理器中的组件,一般JPanel面板默认布局是流失布局。
图9-21 FlowLayout布局。
java程序代码的结构Java是一种面向对象的编程语言,它的代码结构非常重要,它决定了程序的可读性、可维护性以及可扩展性。
一个良好的代码结构能够使程序更易于理解、调试和修改,同时也能提高开发效率。
在本文中,我将介绍Java程序代码的基本结构,以帮助你写出高质量的Java代码。
Java程序的基本结构是由包(package)、引入(import)、类(class)和方法(method)组成的。
下面我将详细介绍每个部分的作用和规范。
1. 包(package)包是用于管理和组织Java文件的一种方式。
它提供了命名空间和访问控制的功能。
一个包通常对应一个文件夹,包名和文件夹的结构相对应。
包名的命名规范是全部小写,并以逆序的域名(如com.example.mypackage)来命名。
例如,如果你要编写一个名为"HelloWorld"的程序,你可以将它放在"com.example.helloworld"这个包中。
2. 引入(import)在Java中,我们可以使用import语句来引入其他包中的类或接口。
通过引入,我们可以直接使用这些类或接口,而无需每次都写全限定名。
引入语句通常写在文件的开头,位于package语句之后。
例如,如果你想在程序中使用java.util包中的ArrayList类,你可以写入import语句:import java.util.ArrayList;3. 类(class)类是Java程序的基本组成单位。
一个Java文件中只能有一个公开的类,且类名必须与文件名相同。
类用来定义对象的行为和状态。
一个类通常包含字段(variables)和方法(methods)。
字段用于存储对象的状态,而方法用于定义对象的行为。
一个类的定义遵循以下语法:public class ClassName {// 字段声明// 方法声明}例如,下面是一个名为"Person"的类的定义:```public class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public void sayHello() {System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");}}```4. 方法(method)方法是用于封装具体行为的代码块。
java布局中的BoxLayout布局,使⽤BoxLayout进⾏Swing布局在⽤户使⽤ Java Swing 进⾏⽤户界⾯开发过程中,会碰到如何对 Java Swing 的控件进⾏布局的问题。
Swing 的控件放置在容器(Container) 中,容器就是能够容纳控件或者其它容器的类,容器的具体例⼦有 Frame、Panel 等等。
容器需要定义⼀个布局管理器来对控件进⾏布局管理,Swing 当中提供的主要的布局管理器有 FlowLayout、BorderLayout、BoxLayout、GridLayout 和 GridBaglayout, 它们的主要特点如表 1 所⽰:表 1. Swing 中的⼀些主要布局管理器的⽐较布局管理器特点FlowLayout把控件按照顺序⼀个接⼀个由左向右的⽔平放置在容器中,⼀⾏放不下,就放到下⼀⾏BorderLayout将整个容器划分成东南西北中五个⽅位来放置控件,放置控件时需要指定控件放置的⽅位BoxLayout可以指定在容器中是否对控件进⾏⽔平或者垂直放置,⽐ FlowLayout 要更为灵活GridLayout将整个容器划分成⼀定的⾏和⼀定的列,可以指定控件放在某⾏某列上GridBagLayout是 Swing 当中最灵活也是最复杂的布局管理器,可对控件在容器中的位置进⾏⽐较灵活的调整本⽂主要关注在 BoxLayout 布局管理器的使⽤上。
我们⾸先对 BoxLayout 作⼀下介绍。
BoxLayout 介绍如前所述,BoxLayout 可以把控件依次进⾏⽔平或者垂直排列布局,这是通过参数 X_AXIS、Y_AXIS 来决定的。
X_AXIS 表⽰⽔平排列,⽽ Y_AXIS 表⽰垂直排列。
BoxLayout 的构造函数有两个参数,⼀个参数定义使⽤该 BoxLayout 的容器,另⼀个参数是指定 BoxLayout 是采⽤⽔平还是垂直排列。
下⾯是⼀个创建 BoxLayout 实例的例⼦:JPanel panel=new JPanel();BoxLayout layout=new BoxLayout(panel, BoxLayout.X_AXIS);panel.setLayout(layoout);在这个例⼦中,⼀个 BoxLayout 布局管理器的实例 layout 被创建,这个实例被设置为 panel 的布局管理器,该布局管理器采⽤了⽔平排列来排列控件。
java模板Java模板。
Java模板是指在Java编程中,可以用来作为基础框架或者蓝本的一些代码结构。
它可以帮助开发者在编写代码时更加高效和规范,提高代码的可维护性和可读性。
在实际的软件开发中,Java模板被广泛应用于各种项目中,包括Web应用、移动应用、桌面应用等。
本文将介绍一些常见的Java模板,以及它们的使用方法和注意事项。
一、MVC模板。
MVC(Model-View-Controller)是一种常见的软件架构模式,它将应用程序分为三个核心部分,模型(Model)、视图(View)和控制器(Controller)。
在Java 中,有许多成熟的MVC框架,如Spring MVC、Struts等,它们都提供了各种模板和工具类来帮助开发者快速搭建MVC应用程序。
使用MVC模板可以让开发者更加专注于业务逻辑的实现,而不用过多关注框架的搭建和配置。
二、单例模板。
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。
在Java中,单例模板通常使用静态变量和静态方法来实现,可以确保在整个应用程序中只有一个实例被创建。
使用单例模板可以避免多次创建对象,节省内存空间,提高程序的性能。
但需要注意的是,单例模式在多线程环境下需要考虑线程安全性,开发者需要仔细设计和测试单例模板的实现。
三、工厂模板。
工厂模式是一种创建型设计模式,它提供了一种统一的接口来创建对象,但允许子类决定实例化的类是哪一个。
在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 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。
当选择使用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是一种计算机程序设计语言,它具有面向对象的特性,被广泛用于开发各种类型的应用程序。
Java语言有着清晰的基本结构,本文将详细介绍Java的基本结构。
1.程序的基本结构:Java程序由一个或多个类构成,每个类都是一个独立的编译单元。
每个Java程序至少有一个类包含一个main(方法作为入口点。
main(方法是每个Java程序都必须有的方法,它定义了程序从哪里开始执行。
2.包(package):Java中的包是用于组织和管理相关类的一种机制。
包可以包含其他包和类,它们提供了一种逻辑上组织和隔离类的方式。
包在Java程序中使用关键字"package"声明,通常放在源文件的开头。
3.类(class):Java中的类是对象的模板,用于描述对象的行为和状态。
每个类由类名、属性和方法组成。
类名以大写字母开头,并且与文件名一致。
属性用于描述对象的状态,方法定义对象的行为。
类可以继承其他类的特性,实现代码的重用。
4.数据类型:Java提供了多种数据类型,包括基本数据类型和引用数据类型。
基本数据类型包括整型(int)、浮点型(float)、字符型(char)、布尔型(boolean)等。
引用数据类型包括类(class)、接口(interface)、数组(array)等。
数据类型决定了变量的存储空间和取值范围。
5.变量和常量:变量用于存储数据,在使用之前需要先声明和初始化。
Java中的变量有多种类型,每个变量有一个数据类型和一个变量名。
常量是不可变的数据,它们在声明时需要被赋初值,并且不能再次改变。
6.方法(method):方法是一组执行特定任务的代码块。
方法由方法名和参数列表组成。
在Java中,可以定义自己的方法,也可以使用系统提供的方法。
方法的参数可以是基本数据类型或引用数据类型,可以有返回值也可以没有。
方法的调用使用方法名和相应的参数。
7.控制语句:Java提供了多种控制结构来控制程序的执行流程。
java的三大主流框架介绍Java是现今应用广泛的计算机语言之一,其优势在于其面向对象编程的特性以及跨平台的能力。
在Java编程中,框架是非常重要的组成部分,因为它们提供了一种通用的解决方案,以使开发人员可以更加轻松地构建和维护应用程序。
现在让我们来介绍Java最主流、最受欢迎的三大框架。
1. Spring FrameworkSpring Framework是Java平台最流行的应用程序开发框架之一。
它是一个轻量级的框架,用于构建企业级应用程序。
Spring使用面向切面编程(AOP)的概念,它优化了应用程序的性能和代码的可重用性。
Spring还提供了许多有用的模块,包括数据访问、事务管理、Web、集成等模块,使得Spring Framework在企业级开发中广泛应用。
Spring Framework 4.0版本的主要特性包括:(1)支持Java 8特性:支持函数式编程和Lambda表达式。
(2)支持RESTful Web服务:Spring Framework是一个完整的RESTful Web服务框架,包括构建和消费RESTful Web服务。
(3)广泛的集成:Spring Framework支持各种类型的数据源和持久化技术,包括Hibernate、MyBatis、JPA等。
(4)简化配置:Spring Framework 4.0改进了其Java配置方式,使得配置更加简单。
(5)提供健康检查:Spring Framework 4.0提供了一个健康检查模块,检查应用程序的健康状况。
2. Hibernate FrameworkHibernate Framework是一个对象/关系映射(ORM)框架,为Java程序员提供了持久化服务。
Hibernate使得程序员可以使用Java类(POJO)来与数据库进行交互,而无需编写传统的SQL 语句。
Hibernate是一个强大的ORM工具,它的使用可以极大地提高应用程序开发的效率。
JAVA开发设计规范JAVA开发设计规范是指在进行JAVA开发过程中,为了统一编码风格、提高代码可读性和可维护性而制定的一系列约定和规范。
本文将从命名规范、代码布局规范、注释规范、异常处理规范、编码规范等方面介绍JAVA开发设计规范。
1.命名规范变量、方法和类名应使用有意义的英文单词或缩写,遵循驼峰命名法。
-变量名应代表该变量的含义,且不使用无意义的单字母命名。
-方法名应清晰表达方法的功能和作用。
-类名应使用名词或名词短语,首字母大写。
2.代码布局规范-使用缩进方式使代码结构清晰可读。
-使用空行分隔不同的功能块。
-代码行长度应限制在80个字符之内,方便查看和打印。
3.注释规范-对于每个类、方法和成员变量,都应添加必要的注释说明其功能和用法。
-注释应该与代码同步更新,并保持准确性。
-注释应使用简洁明了的语言,不应包含冗余信息。
4.异常处理规范- 在代码中必须使用try-catch块处理可能抛出的受检异常。
- 不应使用catch(Exception e)的方式处理异常,在catch块中应提供相应的处理逻辑。
- 应避免在catch块中直接打印异常信息,而是应使用日志框架打印异常。
5.编码规范-尽量使用局部变量而不是全局变量。
-代码中不应包含硬编码的常量,应使用常量变量或配置文件存储。
-代码中应避免使用魔法数字,而使用有意义的命名常量代替。
-尽量避免使用复杂的表达式和语句,提高代码的可读性。
以上只是JAVA开发设计规范的一部分。
在实际开发过程中,还应根据团队的需求和实际情况进行适当的调整和补充。
良好的编码规范可以提高代码的可读性、可维护性和可扩展性,从而提高开发效率和代码质量。
同时,开发人员应定期进行代码审查和重构,以保证代码的质量和规范的执行。
JAVA各种系统架构图及其简介1.架构图Spring是⼀个框架,是为了解决应⽤程序开发复杂性⽽创建的。
框架的主要优势之⼀就是其分层架构,分层架构允许您选择使⽤哪⼀个组件,同时为J2EE应⽤程序开发提供集成的框架。
Spring框架的功能可以⽤在任何J2EE服务器中,⼤多数功能也适⽤于不受的环境。
Spring 的核⼼要点是:⽀持不绑定到特定J2EE服务的可重⽤业务和数据访问对象。
这样的对象可以在不同J2EE环境(或EJB)、独⽴应⽤程序、环境之间重⽤。
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他⼀个或多个模块联合实现。
每个模块的功能如下:核⼼容器:核⼼容器提供Spring框架的基本功能。
核⼼容器的主要组件是BeanFactory,它是⼯⼚模式的实现。
BeanFactory使⽤控制反转(IOC)模式将应⽤程序的配置和依赖性规范与实际的应⽤程序分开。
Spring上下⽂:Spring上下⽂是⼀个配置⽂件,向Spring框架提供上下⽂信息。
Spring上下⽂包括企业服务,例如JNDI、EJB、电⼦邮件、国际化、校验和调度功能。
Spring AOP:通过配置管理特性,Spring AOP模块直接将⾯向⽅⾯的功能集成到了Spring框架中。
所以,可以很容易地使Spring框架管理的任何对象⽀持AOP。
Spring AOP模块为基于Spring的应⽤程序中的对象提供了事务管理服务。
通过使⽤Spring AOP,不⽤依赖EJB组件,就可以将声明性事务管理集成到应⽤程序中。
Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可⽤该结构来管理异常处理和不同供应商抛出的错误消息。
异常层次结构简化了错误处理,并且极⼤地降低了需要编写的异常代码数量(例如打开和关闭连接)。
Spring DAO的⾯向JDBC的异常遵从通⽤的DAO异常层次结构。
Spring ORM:Spring框架插⼊了若⼲个ORM框架,从⽽提供了ORM的对象关系⼯具,其中包括JDO、Hibernate和iBatis Map。
Java形界面SwingJavaFX和AWT Java形界面Swing、JavaFX和AWTJava是一种广泛应用的编程语言,其强大的图形界面(GUI)库使得开发者能够创建各种各样的用户界面。
在Java中,有三种主要的GUI库,它们分别是Swing、JavaFX和AWT。
本文将详细介绍这三种GUI库的特性和使用方法。
一、SwingSwing是Java提供的一套用于构建图形界面的库,它基于AWT库进行了扩展。
Swing提供了丰富的组件和布局管理器,使得开发者能够轻松地创建漂亮和交互性强的界面。
1.1 组件Swing提供了大量的组件,包括按钮、文本框、标签、列表框、表格等。
开发者可以通过组合这些组件来构建复杂的界面。
Swing组件的特点是可定制性高,开发者可以自定义组件的外观和行为。
1.2 布局管理器Swing通过布局管理器来自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout、GridLayout和GridBagLayout。
开发者可以根据界面的需要选择合适的布局管理器。
1.3 事件处理Swing使用事件模型来处理用户的输入和其他操作。
开发者可以为组件添加事件监听器,响应用户的操作。
事件处理是Swing应用中的重要部分,可以使界面与用户产生交互。
二、JavaFXJavaFX是Oracle推出的新一代Java GUI库。
与Swing相比,JavaFX提供了更多的现代化特性,包括动画效果、3D支持和富文本等。
2.1 UI控件JavaFX提供了一套丰富的UI控件,包括按钮、标签、文本框、下拉框等。
这些控件样式多样,并且支持CSS样式表进行自定义。
2.2 布局JavaFX使用场景图(Scene Graph)来组织界面元素。
开发者可以使用各种布局容器来构建界面,如VBox、HBox、BorderPane等。
2.3 动画效果JavaFX内置了强大的动画框架,开发者可以轻松地创建平滑的过渡效果、缩放动画和旋转动画等。
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概述:1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
classpath的配置:1):永久配置方式:classpath=.;c:\;e:\2):临时配置方式:set classpath=.;c:\;e:\注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
Java 边界布局和网格布局BorderLayout只管里容器中的5个组件的排列方式,这五个组件的位置分别位于东、南、西、北、中方向,如下图9-22所示。
图9-22 BorderLayout布局方式BoxLayout类允许垂直或水平布置多个组件,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。
BoxLayout布局管理器是用axis参数构造的,该参数指定了将进行的布局类型。
有4个选择:●X_AXIS 从左到右水平布置组件。
●Y_AXIS 从上到下垂直布置组件。
●LINE_AXIS 根据容器的ComponentOrientation属性,按照文字在一行中的排列方式布置组件。
如果容器的ComponentOrientation 表示水平,则将组件水平放置,否则将它们垂直放置。
●PAGE_AXIS 根据容器的ComponentOrientation属性,按照文本行在一页中的排列方式布置组件。
如果容器的ComponentOrientation表示水平,则将组件垂直放置,否则将它们水平放置。
GridLayout类是一个网格布局处理器,它以矩形网格形式对容器的组件进行布置。
它将容器划分为指定行×列个单元格,按组件add的顺序,依次将组件放入单元格中,可以像表格一样指定其单元格之间的水平与垂直间距。
但是,它不可以跨行与跨列,所以只适用于容器内组件排列呈类表格方式的容器布局。
GridLayout布局的功能非常强大,并在布局中也比较常用。
GridLayout构造方法如下所示:●GridLayout( ) 创建具有默认值的网格布局,即每个组件占据一行一列。
●GridLayout(int rows, int cols) 创建具有指定行数和列数的网格布局。
●GridLayout(int rows, int cols, int hgap, int vgap) 创建具有指定行数和列数的网格布局。
例如,在一个面板中,通过“setLayout(new GridLayout(3, 2));”语句,设置布局方式为3行×2列,则显示的效果如图9-23所示。
java程序代码的结构Java程序代码的结构是指按照一定的规范组织和编写Java代码的方式,以确保代码的可读性、可维护性和可扩展性。
一个标准的Java程序一般包含以下几个部分:1. 包声明(Package Declaration):在Java程序的开头需要声明所属的包。
包的作用是提供命名空间,避免不同类之间的命名冲突。
2. 导入语句(Import Statements):通过导入语句引入所需的外部类或者Java核心库中的类。
可以使用通配符"*"来导入整个包或者单独导入某个类。
3. 类声明(Class Declaration):一个Java程序中至少有一个类,类是Java程序的基本组成单元。
类名需要遵循命名规范,采用驼峰命名法,且首字母大写。
4. 主方法(Main Method):Java程序入口点被定义在主方法中,主方法的声明必须如下所示:`public static void main(String[] args)`。
主方法中的代码将会被执行。
5. 成员变量(Instance Variables):成员变量定义在类中,每个对象实例都拥有一份独立的成员变量副本。
成员变量可以是基本类型(如int、double 等)或者引用类型(如String、自定义类等)。
6. 方法(Methods):方法定义了类的行为。
方法可以接收参数并返回值。
方法可以是静态的(使用static关键字),也可以是非静态的。
静态方法可以直接通过类名进行调用,非静态方法需要通过对象进行调用。
7. 构造方法(Constructor):构造方法用于创建对象,并且在创建对象时初始化对象的成员变量。
构造方法的名称必须与类名相同,并且没有返回值。
8. 语句和表达式(Statements and Expressions):Java程序通过语句和表达式来完成具体的逻辑操作。
语句是一组指令的集合,用于完成具体的任务。
表达式是由操作数和运算符组成的,用于计算结果。
图形用户界面(GUI)(Graphics User Interface ,GUI)
三大界面布局介绍
一、边界布局BorderLayout –介绍
边界布局BorderLayout使用
边界布局BorderLayout—注意事项
1、不是五个部分都必须添加
2、中部组件会自动的调节大小
3、JFrame,JDialog默认布局管理器就是BorderLayout
二、流式布局FlowLayout---介绍
FlowLayout布局,按组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放置在容器中。
当到达容器的边界时,组件将放置在下一行中,FlowLayout可以以左对齐,居中对齐,以右对齐的方式排列组件。
流式布局FlowLayout—注意事项
1、不限制他所管理的组件大小,(即:不能改变组件的大小)允许他们有最佳大小。
2、当容器被缩放时,组件的位置可能变化,但组件的大小不变。
3、默认组件是居中对齐,可以通过FlowLayout(int align)函数,来指定对齐方式。
三、网格布局GridLayout—介绍
GridLayout布局,听其名而知其意,它将容器分割成多行多列,组件被填充到网络中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其它的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。
网络布局GridLayout---注意事项
1、组件的相对位置不随容器缩放而变化,但大小会变化。
2、所有组件的大小相同。
3、可以通过GridLayout(int rows,int cols,int hgap,int vgap)来指定网络的
行/列,水平间隙/垂直间隙。
参数说明:rows - 该 rows 具有表示任意行数的值零
cols - 该 cols 具有表示任意列数的值零
hgap - 水平间距
vgap - 垂直间距
开发GUI程序一般步骤:
1、引包
import java.awt.*;
import javax.swing.*;
2、继承JFrame
public class Demo3 extends JFrame {}
3、定义需要的组件
//3.定义组件
JButton jb1,jb2,jb3,jb4,jb5;
int size=9;
JButton jbs[]=new JButton[size]; //先分配初始空间
4、创建组件
//4.创建组件
jb1=new JButton("中部");
//创建组件
for(int i=0;i<size;i++)
{
jbs[i]=new JButton(String.valueOf(i));
}
5、设置布局管理器
//设置布局管理器,默认是的边界布局管理器
this.setLayout(new FlowLayout(FlowLayout.LEFT));//流式布局
this.add(jb1,BorderLayout.CENTER); //边界布局
this.setLayout(new GridLayout(3,3,10,10)); //网格布局
this.setLayout(null); //取消布局管理器
6、添加组件
//添加组件
this.add(jb1);
this.add(jb2);
7、设置窗体属性
//设置窗体属性
this.setTitle("流式布局案例"); //设置窗体标题
this.setSize(300, 200); //设置窗体大小
this.setLocation(200, 400); //设置初始位置
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗体时关闭虚拟机
//禁止用户改变窗体大小
this.setResizable(false);
//7.显示窗体
this.setVisible(true);
8、显示窗体
利用数组创建组件:
//定义组件
int size=9;
JButton jbs[]=new JButton[size]; //数组要先分配初始空间
//创建组件
for(int i=0;i<size;i++)
{
jbs[i]=new JButton(String.valueOf(i));
}
//添加组件
for(int i=0;i<size;i++)
{
this.add(jbs[i]);
}。