java GUI编程之布局控制器(Layout)实例分析

本文实例讲述了java GUI编程之布局控制器(Layout)。分享给大家供大家参考,具体如下:

布局控制器,是用来系统自动分配各个component在window内部是怎么排布的;默认为FlowLayout,即挨个排序。FlowLayout是Panel的

instance 1:FlowLayout

import java.awt.*;
public class TestLayout {
 public static void main(String[] args) {
 Frame f = new Frame();
 Button b1 = new Button("ok");
 Button b2 = new Button("open");
 Button b3 = new Button("change");
 f.setBackground(Color.BLUE);
 f.setBounds(100, 100, 300, 300);
 f.setLayout(new FlowLayout());
 f.setResizable(true);
 f.add(b1);
 f.add(b2);
 f.add(b3);
 f.setVisible(true);
 }
}

instance 2:BorderLayout

import java.awt.*;
public class TestBorderLayout {
 public static void main(String[] args) {
 Frame f = new Frame("Border Layout");
 Button bn = new Button("Bn");
 Button bs = new Button("Bs");
 Button be = new Button("Be");
 Button bw = new Button("Bw");
 Button bc = new Button("Bc");

// f.add(bw,"West");
// f.add(be,"East");
// f.add(bn,"North");
// f.add(bs,"South");
// f.add(bc,"Center");
// f.setLayout(new BordorLayout());
 f.add(bn,BorderLayout.NORTH);
 f.add(bs,BorderLayout.SOUTH);
 f.add(bw,BorderLayout.WEST);
 f.add(be,BorderLayout.EAST);
 f.add(bc,BorderLayout.CENTER);

 f.setSize(200, 200);
 f.setVisible(true);
 }
}

BorderLayout把整个界面划分为东西南北中五个区域块;其中BorderLayout.NORTH等是int类型的数据,为一个常量。

instance 3:GridLayout

import java.awt.*;
public class TestGridLayout {
 public static void main(String[] args) {
 Frame f = new Frame();
 Button b1 = new Button("b1");
 Button b2 = new Button("b2");
 Button b3 = new Button("b3");
 Button b4 = new Button("b4");
 Button b5 = new Button("b5");
 Button b6 = new Button("b6");
 f.setLayout(new GridLayout(3,2));

 f.add(b1);
 f.add(b2);
 f.add(b3);
 f.add(b4);
 f.add(b5);
 f.add(b6);
 f.pack();
 f.setSize(200, 200);
 f.setVisible(true);
 }
}

注:当调用Layout后,其内部的component的大小和位置由系统(布局管理器自主分配),而无法认为的设计。而pack()方法是用来显示各个组件的。

instance 4:综合实例

import java.awt.*;
public class TestedLayout {
 public static void main(String[] args) {
 Frame f = new Frame("GUI");
 f.setLayout(new GridLayout(2,1));
 Panel p1 = new Panel(new BorderLayout());
 Panel p2 = new Panel(new BorderLayout());
 Panel p11 = new Panel(new GridLayout(2,1));
 Panel p22 = new Panel(new GridLayout(2,2));
 Button b1 = new Button("button");
 Button b2 = new Button("button");
 Button b3 = new Button("button");
 Button b4 = new Button("button");
 Button b5 = new Button("button");
 Button b6 = new Button("button");
 Button b7 = new Button("button");
 Button b8 = new Button("button");
 Button b9 = new Button("button");
 Button b10 = new Button("button");
 p1.add(b1,BorderLayout.WEST);
 p1.add(b2,BorderLayout.EAST);
 p2.add(b3,BorderLayout.WEST);
 p2.add(b4,BorderLayout.EAST);
 p11.add(b5);
 p11.add(b6);
 p22.add(b7);
 p22.add(b8);
 p22.add(b9);
 p22.add(b10);
 p1.add(p11,BorderLayout.CENTER);
 p2.add(p22,BorderLayout.CENTER);
 f.add(p1);
 f.add(p2);
 f.setBounds(100, 100, 400, 400);
 f.setVisible(true);

 }
}

注:一个new等于创建了一个button对象,分配了一个内存空间。即使是完全相同的button即同样的大小名称等,其终究还是哪一个,当其被反复添加时,仅仅是相当于给其换了位置。其和变量不同,并不是单纯的复制,而是内存和对象的指向问题。

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java GUI制作简单的管理系统

    本文实例为大家分享了Java GUI管理系统的具体代码,供大家参考,具体内容如下 1.先完成主页面MainUI(代码如下) package com.pag_1; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MainUI extends JFrame implements ActionLis

  • java布局管理之CardLayout简单实例

    本文实例为大家分享了java布局管理之CardLayout的具体代码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swi

  • JAVA图形界面(GUI)之表格的示例代码

    表格(JTable)是我们在GUI开发中很常用的一个组件.表格在可视化编程中用于显示信息,在Swing编程中非常有用,当要显示大量数据时,用表格可以清晰的显示出来. 本篇博客将演示JTable的基本用法. 构造方法: 方法名 说明 JTable() 构造一个默认的 JTable,使用默认的数据模型.默认的列模型和默认的选择模型对其进行初始化 JTable(int numRows, int numColumns) 使用 DefaultTableModel 构造具有 numRows 行和 numCo

  • Java GUI实现学生成绩管理系统

    学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理. 先看看效果吧 1.登录主界面 package edu.gzu.stuManager; i

  • Java的带GUI界面猜数字游戏的实现示例

    先导包 import java.util.*; import javax.swing.*; 再写主方法 public static void main(String[] args) { } 新声明一个Scanner和随机数 public static void main(String[] args) { Scanner in = new Scanner(System.in); Random r = new Random(); } 让UIManager爬取系统窗口样式 try { UIManage

  • Java 最重要布局管理器GridBagLayout的使用方法

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直.水平或沿它们的基线对齐. 每个 GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域. 下面就通过一个记事本案例去说明GridBagLayout的使用方法. 分析: 带有箭头的说明可以拉伸的. 4占用4个格

  • java Gui实现肯德基点餐收银系统

    大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java Gui模拟的肯德基收银系统. 1.系统介绍 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能

  • Java GUI编程实现在线聊天室

    引言 综合应用Java的GUI编程和网络编程,实现一个能够支持多组用户同时使用的聊天室软件.该聊天室具有比较友好的GUI界面,并使用C/S模式,支持多个用户同时使用,用户可以自己选择加入或者创建房间,和房间内的其他用户互发信息(文字和图片) 主要功能 客户端的功能主要包括如下的功能: 选择连上服务端 显示当前房间列表(包括房间号和房间名称) 选择房间进入 多个用户在线群聊 可以发送表情(用本地的,实际上发送只发送表情的代码) 退出房间 选择创建房间 房间里没人(房主退出),导致房间解散 显示系统

  • java GUI界面初步入门示例【AWT包】

    本文实例讲述了java GUI界面.分享给大家供大家参考,具体如下: Java不太擅长做图形界面: AWT是一种较老的包,最新的是Swing包,由于其包内调用了一部分的操作系统的内容,所以无法做到完全的跨平台. 对于每一个图形元素都是一个component类,其包含container,container是一个component,同时他又作为component的一个容器类,又可以存放component.在container中还有window和panel两种类,其中window类是独立的,可以直接显

  • Java的GUI编程之列表和组合框的设计使用

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文本选择项条目.列表事件的事件源有两种: 一是鼠标双击某个选项:双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e). 二是鼠标单击某个选项:单击选项是选项

  • JAVA GUI自定义JPanel画板背景

    自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像点击QQ图标弹出对应的登录窗体. 一般程序与用户的交互都基于对应程序的运行界面. 2.JPanel面板是SWING下的一个面板容器类.该面板支持嵌套,可设置布局方式,设置不同的布局管理器可添加其他控件像JButton按钮,JTextField文本框等.来设计完善一个程序界面窗体. 作为绘制面板支持s

  • Java GUI编程之贪吃蛇游戏简单实现方法【附demo源码下载】

    本文实例讲述了Java GUI编程之贪吃蛇游戏简单实现方法.分享给大家供大家参考,具体如下: 例子简单,界面简陋 请见谅 项目结构如下 Constant.jvava 代码如下: package snake; /** * * @author hjn * */ public class Constant { /** * 蛇方移动方向:左边 */ public static final int LEFT = 0; /** * 蛇方移动方向:右边 */ public static final int R

随机推荐