一:Swing的组件:

  组件(component,或称原件)就是你会放在GUI上的东西,这些东西用户可以看到并可以与之交互。

  组件是可以嵌套的。

  创建GUI的四个步骤:

    1.创建window(JFrame):  JFrame frame  = new JFrame();    

    2.创建组件:        JButton button = new JButton("Title");

    3.把组件加载到frame上:      frame.getContentPane().add(BorderLayout.EAST,button);

    4.显示出来:        frame.setSize(300,300);

                  frame.setVisible(true);

二:布局管理器(LayoutManager):

       布局管理器是个与特定组件(大多数是背景组件)相关联的java'对象,布局管理器用来控制所关联组件上携带的其他组件。

    布局管理器有几种不同的类型,每个背景组件都可以有自定义规则的布局管理器。例如,某个布局管理器会让所有的面板维持相同的大小,

              而另一个布局管理器则会让组件自行设定大小但要求垂直对齐。

    下面是一个嵌套布局的例子。

    

import java.awt.*;
import javax.swing.*; public class LayoutManagerTest{
public static void main(String[] args){
JFrame frame=new JFrame(); JPanel panelA=new JPanel();
JPanel panelB=new JPanel();
JButton buttonA=new JButton("Button A");
JButton buttonB=new JButton("Button B");
panelA.add(buttonA);
panelA.add(buttonB);
panelB.add(panelA);
frame.add(panelB); frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

  

  那么布局管理器如何做决定呢?

  基本按照下面的情景:

  1.制作面板并加上两个按钮

  2.面板的布局管理器会询问每个组件理想的大小(可能自定义了大小)应该是什么

  3.面板的布局管理器以它的布局策略来决定是否尊重全部或部分按钮的理想

  4.吧面板加到框架上

  5.框架的布局管理器询问面板的理想尺寸

  6.框架的布局管理器以它的布局策略来决定是否尊重全部或部分的面板理想

  世界三大首席管理器:border,flow,box

  

  BorderLayout:

  这个管理器会将背景组件分成五个区域,每个被管理的区域只能放一个组件(当然你可以嵌套定义),这是框架默认的布局管理器。

  FlowLayout:

  这个管理器和文书程序的版面配置方式差不多。每个组件都会按照理想的大小呈现,并且会从左到右依次排列,放不下则换行。这是面板的默认布局。

  BoxLayout:

  和FlowLayout类似,但是他是按照垂直的方式排列(也可以水平),他不会自动换行,但是它会让你插入某种类似换行的机制来强制组件从新的一行开始排列

参考:Head First Java.

    

  

运用 Swing的更多相关文章

  1. 如何使用swing创建一个BeatBox

    首先,我们需要回顾一些内容(2017-01-04 14:32:14): 1.Swing组件 Swing的组件(component,或者称之为元件),是较widget更为正确的术语,它们就是会放在GUI ...

  2. Java Swing interview

    http://www.careerride.com/Swing-AWT-Interview-Questions.aspx   Swing interview questions and answers ...

  3. Swing布局管理器介绍

    创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

  4. swing with transformjs

    Antecedent Facebook made a HTML5 game long time ago. The opening animation is a piece of software th ...

  5. java swing 双人五子棋源代码

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; impo ...

  6. 用swing也可以做出好看的界面

    用Swing做出的例子:JavaFX做出的界面:后来又做出了自己编写的一套基于Synth的L&F,其与直接在代码中重绘某个组件不同,最大优点是具有可插拔性,即在不改变原有程序代码的情况下,用户 ...

  7. Java界面设计 Swing(1)

    Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类 ...

  8. java基础 swing编程实战

    1. 实现金山词霸,点击左右收缩 效果图: exmaple code : /* * 词霸 * */ package demo7; import java.awt.*; import java.awt. ...

  9. Swing中弹出对话框的几种方式_JOptionPane.showMessageDialog等详解

    Swing中弹出对话框的几种方式_JOptionPane.showMessageDialog等详解   在swing中,基于业务的考量,会有对话框来限制用户的行为及对用户的动作进行提示. Swing中 ...

  10. Swing学习笔记1-----Swing组件类的层次

    1.  从结构上划分 Swing 组件类分为两种,一种是JComponent类,一种是Windows类.其中windows类包含的是一些可以独立显示的组件,而JComponent类包含的是不可以独立显 ...

随机推荐

  1. 曲线救国:IIS7集成模式下如何获取网站的URL

    如果我们在Global中的Application_Start事件中访问HttpContext.Current.Request对象,如: protected void Application_Start ...

  2. ASP.NET 保存txt文件

    public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.Buffer ...

  3. jquery 控件赋值

    input 文本框赋值$("#id").attr("赋值"); input 文本框清空$("#id").attr("") ...

  4. Google之Chromium浏览器源码学习——base公共通用库(四)

    本文将介绍debug调试相关的内容,包括调试器.性能分析.堆跟踪.跟踪事件等: alias.h:Alias函数,提供防止载微软的编译器优化某参数变量的操作,内部通过#pragma optimize(& ...

  5. [译]SQL Server分析服务的权限配置

    简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权 ...

  6. Mybatis关联查询(嵌套查询)

    上一篇文章介绍了基于Mybatis对数据库的增.删.改.查.这一篇介绍下关联查询(join query). 三张表:user article blog 表的存储sql文件: /* Navicat My ...

  7. fabric devenv Vagrantfile配置

    Vagrantfile文件只会在第一次执行vagrant up时调用执行,其后如果不明确使用vagrant reload,则不会被强制重新加载. # This is the mount point f ...

  8. github page

    使用github page 可以查看仓库中保存的网页的事例 新建gh-pages的分支,然后点击上方的page按钮即可配置相应的链接以及地址 注:默认情况下显示的是当前文件下的index.html文件 ...

  9. 在DrawingVisual上绘制圆形的进度条,类似于IOS系统风格。

    1.说明:在WPF中,文件下载时需要显示下载进度,由于系统自带的条型进度条比较占用空间,改用圆形的进度条,需要在DrawingVisual上呈现. 运行的效果如图: private Point Get ...

  10. Leetcode Gray Code

    题目的意思就是将十进制转换成格雷码 首先将二进制转换成格雷码 根据此图可以看出二进制的第i和第i+1位异或为格雷码的第i+1位,对于给定的十进制数x,其(x>>1)相当于二进制向右移动一位 ...