当前位置:文档之家› Java3_6_图形管理之面板布局(Jpanel)

Java3_6_图形管理之面板布局(Jpanel)

Java3_6_图形管理之面板布局(Jpanel)
Java3_6_图形管理之面板布局(Jpanel)

JPanel

注意:1、属于容器组件,可以加入别的组件

2、默认布局管理器是流式布局

案列:

/*

* 作者:田停

* 日期:2013 8 7

* 功能:面板组件

*/

package com.tt.gui;

import java.awt.*;

import javax.swing.*;

public class Demo5 extends JFrame

{

//定义组件

JPanel jp1,jp2,jp3;

//定义按钮

JButton jb1,jb2,jb3,jb4,jb5,jb6;

public static void main(String args[])

{

Demo5 tt=new Demo5();

}

//构造函数

public Demo5()

{

//创建组件

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

jb1=new JButton("西瓜");

jb2=new JButton("香蕉");

jb3=new JButton("葡萄");

jb4=new JButton("桔子");

jb5=new JButton("苹果");

jb6=new JButton("李子");

//把JButton放到JPanel里面

jp1.add(jb1);

jp1.add(jb2);

jp2.add(jb3);

jp2.add(jb4);

jp2.add(jb5);

jp3.add(jb6);

//把JPanel组件放到JFrame里面

this.add(jp1,BorderLayout.NORTH);

this.add(jp2,BorderLayout.SOUTH);

this.add(jb6,BorderLayout.CENTER);

//设置属性

this.setSize(300,300);

this.setLocation(200,200);

this.setTitle("Jpanel");

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

this.setResizable(false);

}

}

运行结果:

java swing布局管理器

学籍管理系统 Java Swing布局管理器 科尔沁艺术职业学院计算机科学与技术系2008级(普理)班曹容赫 指导教师苏春源 摘要:院校规模不断扩大,学生数量不断增多,原来的人工记录的方式,甚至是一般的数据存储管理软件不能满足学生管理的需求。传统管理方式维护数据性能低、查询信息不方便、选课效率低、维护成绩信息的工作量大,为弥补以上缺陷,便于信息管理与维护,提高管理效率,从而开发此学籍管理系统,以实现学院的信息化管理。 关键词Java.*Swing 用户名管理 Kerqin Art Institute of evaluating teaching career system Kerqin Art Vocational College, Department of Computer Science and Technology 2008 (2)Cao ronghe Abstract:The institutions have been expanding, increasing the number of students, the original way of manual records, or even a general data storage management software can not meet the management needs of students. Performance of the traditional low-maintenance data management, query information is not convenient, course selection, low efficiency, heavy workload to maintain performance information for more than make up for deficiencies, facilitate information management and maintenance, and improve management efficiency, in order to develop the school management system to achieve School of Information Management. Key words java*swing The user's name manages 引言 为了学院更方便的管理各院系开设的课程,让学生更方便地选课并及时了解个人课程及成绩信息,同时提高学院的信息化水平,学籍管理系统对成绩管理、学籍管理、班级管理、课程设置、选课信息等几个方面进行管理,真正实现管理信息化,且弥补了过去传统的数据信息管理的低效率问题。 1、需求分析 经过讨论此系统的开发是有必要的,针对此系统的使用群体有学生、家长、教师等。此系统可以根据相应信息对学生信息进行更有效的管理。还应用了Java *Swing 来编写主体布局界面,使操作更简单、更实用。

java笔记4(布局管理器常用组件qq聊天界面记事本)

Java笔记4(布局管理器、常用组件、qq聊天界面、记事本) 文件结构Java代码布局管理器Demo8_1.java package com.test1; import javax.swing.JButton; import javax.swing.JFrame; public class Demo8_1 extends JFrame //继承JFrame { /** * @param args */ public static void main(String[] args) { Demo8_1 demo8_1=new Demo8_1(); } //把需要的组件定义在这里JButton jb1=null; //定义一个按钮//构造函数public Demo8_1() { ////JFrame是一个顶层容器类(可以添加其它swing组件的类) //JFrame jf=new JFrame(); //给窗体设置标题 this.setTitle("Hello world"); //设置大小,按像素this.setSize(200, 200); //设置初始位置 this.setLocation(100,200); //创建一个按钮 jb1=new JButton("我是一个按钮!"); //添加JButton组件this.add(jb1); //设置当关闭窗口时,保证JVM也退出 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示this.setVisible(true); } } 常用组件常Demo8_2.java /* * BorderLayout演示*

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

三十三、Java图形化界面设计——布局管理器之null布局(空布局) 一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局。 操作方法: 1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局)。 2)再调用组件的setBounds(int x, int y, int width,int height)方法设置组件在容器中的大小和位置,单位均为像素。 x为控件左边缘离窗体左边缘的距离 y为控件上边缘离窗体上边缘的距离 width为控件宽度 height为控件高度 实例:使用空布局精确定位组件的位置 // NullLayoutDemo.java

import java.awt.*; import javax.swing.*; public class NullLayoutDemo{ JFrame fr; JButton a,b; NullLayoutDemo() { fr = new JFrame(); fr.setBounds(100,100,250,150); //设置窗体为空布局 fr.setLayout(null); a=new JButton("按钮a"); b=new JButton("按钮b"); fr.getContentPane().add(a); //设置按钮a的精确位置 a.setBounds(30,30,80,25);

fr.getContentPane().add(b); b.setBounds(150,40,80,25); fr.setTitle("NullLayoutDemo"); fr.setVisible(true); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.setLocationRelativeTo(null); //让窗体居中显示} public static void main(String args[]){ new NullLayoutDemo(); } } 程序运行结果如下:

java任意窗口布局

package login; import java.awt.Color; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Login extends JFrame{ /** * @param args * 登陆窗口 */ private JLabel userId_label; private JLabel userPass_label; private JTextField userId_field; private JTextField userPass_field; private JButton ok_button; private JButton cancle_button; private JPanel mainPanel; JFrame frame; int frame_width;//窗口的宽度 int frame_height;//窗口的高度 public Login(){ Toolkit toolKit = Toolkit.getDefaultToolkit(); Dimension dimension = toolKit.getScreenSize(); int width =dimension.width; //屏幕的宽度 int height =dimension.height;//屏幕的宽度 frame_width = width/3; frame_height = height/3; buildPanel(frame_width,frame_height);//新建面板 this.setTitle("酒店管理系统"); this.setSize(frame_width,frame_height); this.setLocation(frame_width, frame_height); this.setContentPane(mainPanel);

JAVA布局管理器

前言 随着Internet的飞速发展,Java技术也得到了越来越广泛的应用。而无论我们是采用J2SE、J2EE还是J2ME,GUI都是不能回避的问题。现在的应用软件越来越要求界面友好、功能强大而又使用简单。而众所周知,在Java中进行GUI设计相对于其跨平台、多线程等特性的实现要复杂和麻烦许多。这也是很多Java 程序员抱怨的事情。但GUI已经成为程序发展的方向,所以我们也必须了解Java 的GUI设计方法和特点。其实,采用Java提供的布局管理器接口和相应的布局管理类,我们也可以做出相当漂亮的界面来,当然实现起来肯定要比VB麻烦许多。本文试图通过自己的开发经历介绍一些具体的应用实例,希望能给那些曾经象我一样苦闷的Java痴迷者一些帮助。 2 Java中的布局管理器 2.1 为什么要使用布局 在实际编程中,我们每设计一个窗体,都要往其中添加若干组件。为了管理好这些组件的布局,我们就需要使用布局管理器。比如说,设计一个简单的计算器,或一个文本编辑器等等。这些组件是让JVM 自己任意安排呢?还是按照一定的位置关系进行规范的安排呢?当然应该选择后者。将加入到容器的组件按照一定的顺序和规则放置,使之看起来更美观,这就是布局。在Java中,布局由布局管理器 (LayoutManager) 来管理。那么,我们在什么时候应该使用布局管理器?应选择哪种布局管理器?又该怎样使用布局管理器呢? 如果你写的是GUI程序,在使用AWT/Swing组件时就不应硬性设置组件的大小和位置,而应该使用Java的布局管理器(LayoutManager)来设置和管理可视组件的大小和位置,否则就有可能造成布局混乱。不信,你可以新建一个Frame(或JFrame),通过setBounds()方法往其中添加几个Button(或JButton),一旦你将窗体拉大或缩小时,你会发现组件的排列完全不是按你所预想的那样。为了解决这个问题,即当窗体(或容器)缩放时,组件位置也随之合理调整,我们就需要使用布局管理器。 为此,我们首先要知道Java的布局方式,Java提供的API中有些什么布局管理器,它们的布局特点是什么。 2.2 Java的布局方式 我们都知道,Java的GUI界面定义是由AWT类包和Swing类包来完成的。它在布局管理上采用了容器和布局管理分离的方案。也就是说,容器只管将其他组件放入其中,而不管这些组件是如何放置的。对于布局的管理交给专门的布局管理器类(LayoutManager)来完成。 现在我们来看Java中布局管理器的具体实现。我们前面说过,Java中的容器类(Container),它们只管加入组件(Component),也就是说,它只使用自己的

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

当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。 下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。 代码演示 每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。这些文件主要有三个方法组成: addComponentsT oPane()提供布局逻辑(依据不同的布局管理器和UI内容)。 Java代码 1public static void addComponentsT oPane(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. 10addComponentsT oPane(frame.getContentPane()); 11// Display the window. 12frame.pack(); 13frame.setVisible(true); 14} 15//main()程序入口,单独起一个线程,实例化UI。 16public static void main(String[] args) {

java布局管理

一、实验目的:(详见指导书,宋体小四) 掌握Java图形Swing组件和布局管理器的使用; 掌握使用Java事件处理机制的使用。 掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。 二、实验要求:(详见指导书,宋体小四) 1.采用布局管理器进行界面的布局; 2. 学会对不同的事件用相应的事件处理器; 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示, 并给出解决办法。(附运行界面、源代码)。 三、实验内容及过程:(宋体小四,) 1.编写Application程序,在JFrame中加入2个按钮(JButton)和1个标签 (Label),单击两个按钮,显示按钮的标签于Label。 过程:首先建立一个主类,让主类继承JFrame 类实现 ActionListener 接口。然后在主类中声明变量JButton ,JPanel。创建一个面板panel然后在创建两个按钮,面板使用流式布局,然后将两个按钮添加到面板中,再将面板添加到窗体的上部。然后在建立一个标签,将标签添加到窗体的下方。最后要在两个按钮失眠分别添加监听器,保证当触动按钮时按钮上的字体能够出现在标签上。 2.在JApplet中加入1个文本框,1个文本区,每次在文本框中输入文本,回车后将文本添加到文本区的最后一行。 过程:首先创建一个窗体,窗体里插入一个文本框和一个文本区,分别将文本框放在窗体的上方,文本区放在窗体的下方。重点就是在文本框上添加一个键盘监听器,保证当触动Enter键时能够将文本框中的内容复制到文本区中即可。 3.设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将

GridBagLayout(网格布局管理器)结构分析及功能使用详解

java.awt 类 GridBagLayout https://www.doczj.com/doc/7428368.html,ng.Object java.awt.GridBagLayout 所有已实现的接口: LayoutManager, LayoutManager2, Serializable public class GridBagLayout extends Object implements LayoutManager2, Serializable GridBagLayout类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。每个GridBagLayout对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域。 每个由GridBagLayout管理的组件都与GridBagConstraints的实例相关联。Constraints 对象指定组件的显示区域在网格中的具体放置位置,以及组件在其显示区域中的放置方式。除了Constraints 对象之外,GridBagLayout还考虑每个组件的最小大小和首选大小,以确定组件的大小。 网格的总体方向取决于容器的ComponentOrientation属性。对于水平的从左到右的方向,网格坐标(0,0) 位于容器的左上角,其中X 向右递增,Y 向下递增。对于水平的从右到左的方向,网格坐标(0,0) 位于容器的右上角,其中X 向左递增,Y 向下递增。 为了有效使用网格包布局,必须自定义与组件关联的一个或多个GridBagConstraints对象。可以通过设置一个或多个实例变量来自定义GridBagConstraints对象: GridBagConstraints.gridx、GridBagConstraints.gridy 指定包含组件显示区域的前导角的单元,在此显示区域中,位于网格原点 的单元地址是 gridx = 0, gridy = 0。对于水平的从左到右的布局,组件的前导角是其左上角。对于水平的从右到左的布局,组件的前导角是 其右上角。使用 GridBagConstraints.RELATIVE(默认值),指定会将组件直接放置在之前刚添加到容器中的组件的后面(沿 X 轴向为 gridx 或Y 轴向为 gridy)。 GridBagConstraints.gridwidth、GridBagConstraints.gridheight 指定组件的显示区域中行(针对 gridwidth)或列(针对 gridheight)中的单元数。默认值为 1。使用 GridBagConstraints.REMAINDER 指定组件的显示区域,该区域的范围是从 gridx 到该行(针对 gridwidth)中的最后一个单元,或者从 gridy 到该列(针对 gridheight)中的最后一个单元。使用 GridBagConstraints.RELATIVE 指定组件的显示区域,该

Swing常见布局管理器总结

1、BorderLayout 边界布局管理器 北区:页首(PAGE_START)north 南区:页尾(PAGE_END)south 西区:行首(LINE_START) west 东区:行尾(LINE_END)east 我们也可以在内容窗格的顶头放置工具栏,底部放置状态栏 工具栏和状态栏的高度都是不变的,但长度随框架大小而改变 这正好是边界型布局的北区、南区的特点 因此,北区和南区可以放置工具栏和状态栏,同时会根据框架的大小自动调整面板、工具栏和状态栏的大小 对于此类界面,可以将主工作区放在中间区里,辅助工具区放在周边的东、南、西、北四个区域的某一个区域中: 缺省情况下,边界型布局的各区之间没有空隙,组件彼此靠在一起 可以指定区域间的水平间隙和垂直间隙: JPanel panel = new JPanel(); panel.setLayout(new BorderLayout(5, 5)); 2、BoxLayout(盒子布局器) 它没有空构造函数,必须给出两个参数: 需要它管理的容器对象 组件排列的轴线方向,轴线方向有两种: LINE_AXIS(或者X_AXIS)表示组件按横线排成一行; PAGE_AXIS(或者Y_AXIS)表示组件按纵向排成一列 组件的对齐方式(Alignment): 对于纵向排列的组件,有3种对齐方式: btn1.setAlignmentX(Component.LEFT_ALIGNMENT); btn1.setAlignmentX(Component.CENTER_ALIGNMENT); btn1.setAlignmentX(Component.RIGHT_ALIGNMENT); 对齐方式是组件本身的性质,而不是布局管理器的性质。因此,你需要调用每个组件本身的setAlignmentX函数来设定对齐方式

二十九、Java图形化界面设计——布局管理器之FlowLayout(流式布局)

二十九、Java图形化界面设计——布局管理器之FlowLayout (流式布局) 前文讲解了JFrame、JPanel,其中已经涉及到了空布局的使用。Java虽然可以以像素为单位对组件进行精确的定位,但是其在不同的系统中将会有一定的显示差异,使得显示效果不尽相同,为此java提供了布局管理器,以使编写的图形界面具有良好的平台无关性。 注意:所有的布局管理器均是针对容器来使用的,包括顶层容器和中间容器。 一、布局管理器所属类包

二、容器的默认布局管理器 各容器都有默认的布局管理,见下表: 三、FlowLayout(流式布局)

使用FlowLayout布局方式的容器中组件按照加入的先后顺序按照设置的对齐方式(居中、左对齐、右对齐)从左向右排列,一行排满(即组件超过容器宽度后)到下一行开始继续排列。 1、流式布局特征如下: l 组件按照设置的对齐方式进行排列 l 不管对齐方式如何,组件均按照从左到右的方式进行排列,一行排满,转到下一行。(比如按照右对齐排列,第一个组件在第一行最右边,添加第二个组件时,第一个组件向左平移,第二个组件变成该行最右边的组件,这就是从左向右方式进行排列) 2、流式布局FlowLayout类的常用构造函数和方法

3、FlowLayout 布局应用代码段举例 1) 设置FlowLayout 布局 JFrame fr=new JFrame( ); FlowLayout flow=new FlowLayout( ); fr.setLayout(flow); 上面的语句可以简化成: fr.setLayout(new FlowLayout()); 2) 设置框架fr为组件左对齐的FlowLayout布局 fr.setLayout(newFlowLayout(FlowLayout.LEFT)); 3) 设置框架fr为组件左对齐的FlowLayout布局,并且组件的水平间距为20像素,垂直间距为40像素。 fr.setLayout(new FlowLayout(FlowLayout.LEFT,20,40)); 实例:对齐方式 // FlowLayoutDemo.java importjavax.swing.*;

java Swing心得

Java Swing 心得 本周做了一个java的C/S模式的程序,让我学习到了C/S的开发,虽然只是一个很小的程序,但是下次再做的话就不会生疏,这次做的还有很多不足的地方,随着以后的深入了解,我相信会做的更好。下面我们来谈谈java Swing。 Swing是一种java语言开发窗口程序的工具包,是以抽象的工具类AWT(Abstract Windows Toolkit)为基础发展而来,由于AWT 的一些重要功能还有所欠缺,于是就出现了Swing,但并不是抛弃了AWT,一些重要的工具仍然保存,但是Swing在选择上还是成为了开发的首选。 Swing中是由组件构成的,他的组件可以分为两种类型,一种是JComponent类和Window类,Window类可以独立显示,不依靠任何组件,比如JFrame,JComponent类是不能独立显示,而要依靠组件来显示,比如JButton就要依靠JFrame来显示,Swing包中的组件又可以分为三种类型,顶层组件,中间组件和基础组件,顶层组件有:JFrame,JApplet,JDialog,JWindow;中间组件大多就是承担一个容器的作用,比如JPanel,JScrollpane,JSplitpane,JToolBar;基础组件就是 JButton,JComboBox,JList,JMean,JSlider,JTextField,这些组件必须要依靠中间组件来显示,由此可见,基础组件必须要依靠中间组件,而中间组件必须要依靠顶层容器来显示,在建一个窗口程序

的时候必须实例化组件,不然会报异常,组件没有实例化,实例化之后顶层组件.add(中间组件),中间组件.add(基本组件),想要什 么效果直接实例化组件,然后添加到容器里,一个窗口想要美观,就需要布局,常用的布局有GridBagConstraints来控制你的组件摆放的位置,一般来会创建一个add方法,gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, insert, ipadx, ipady,都是其中的参数gridx:横坐标;gridy:纵坐标;gridwidth:橫占一个单元格;gridheight:列占一个单元格;weightx:当窗口放大时,长度不变;weighty:当窗 口放大时,高度不变,anchor = GridBagConstraints.NORTH; 当组件 没有空间大时,使组件处在北fill=GridBagConstraints. BOTH,当格子有剩余空间时,填充空间,insert = new Insets(0, 0, 0, 0); 组件彼此的 间距,ipadx = 0; 组件内部填充空间,即给组件的最小宽度添加多大 的空间ipady = 0; 组件内部填充空间,即给组件的最小高度添加多大 的空间通过这个组件就可以布置你想要的布局,如果你想更加美观,就可以使用JInternalFrame来美化窗口,当然Swing中还有JList,JTable都可以显示数据可以从数据库操作数据展示出来,其中JList 是以数组的形式存储数据,使用list.SetListData (数组)来展示数据,也可以在list窗口添加滚动条,以免数据太多而展示不完全,每个控件都有自己的方法,都是实例化一个什么样的组件,带标题,带icon的图标,后有自己的取值,赋值方法都有启用或者禁用组件或者当前组件可不可见的方法,会让你的程序变得几行代码就可以实现一个操作,特别是按钮或者菜单的功能的实现,使用监听会

AWT中常用的布局管理器

AWT中常用的布局管理器有如下几个:FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout,Swing还提供了一个BoxLayout。 FlowLayout从左向右排列所有组件,遇到边界就会折回下一行从新开始。它有三个构造器FlowLayout(),FlowLayout(int align)和FlowLayout(int align, int hgap, int vgap),其中的hgap和vgap代表水平间距和垂直间距,align指的是组件的排列方向(从左向右,从右向左,从中间向两边),我们可以使用FlowLayout的静态常量来设置这个参数:FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHT。 BorderLayout将容器分为EAST,SOUTH,WEST,NORTH,CENTER五个区域,如下图所示: 我们在向使用此布局管理器的容器中添加组件时,需要制定添加到的区域,否则就默认添加到中间区域里,而当我们向一个区域添加多个组件时,后放入的组件会覆盖前面的组件。BorderLayout有两个构造器,BorderLayout()和BorderLayout(int hgap,int vgap),hgap和vgap代表的水平间距和垂直间距。我们在指定组件添加到的区域时,可以使用它的静态常量:BorderLayout.EAST, BorderLayout.WEST, BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.CENTER。例如: Frame f = new Frame(); f.setLayout(new BorderLayout(5,5)); f.add(new Button(“南”),SOUTH);//将一个按钮添加到南的位置 BorderLayout最多只能放5个组件,但是实际上我们可以先在Panel中添加多个组件,再将Panel添加到BorderLayout布局管理器中,因此我们实际可以放的组件要远远超过5个。 GridLayout将容器分割成大小相同的网格,我们在添加组件时将默认从左到右从上到下,将组件依次添加到每个网格中,而每个组件的大小也就由其所添加到的网格的大小所决定。GridLayout同样也有两个构造器,GridLayout(int rows,int cols)和GridLayout(int rows ,int cols,int hgap,int vgap),使用GridLayout的典型例子就是计算器的窗口: import java.awt.*; public class calculator {

相关主题
文本预览
相关文档 最新文档