前言

正文

Java中的图形界面编程

AWT/Swing

AWT(Abstract Window ToolKits,抽象窗体工具集)

1.容器类:用来存储组件,实现容器布局

2.组件类:实现界面的一些特定功能


一个容器能够包涵多个组件,组件必须存放在容器中

3.布局管理器:实现容器的布局设置

4.图形类:包含一些基本图形


Swing是AWT的一个轻量级框架

java.lang.Object

  java.awt.Component

      java.awt.Container

          java.awt.Window

              java.awt.Frame

                  javax.swing.JFrame

5.Swing中经常使用的容器

 JFrame 窗体

 JPanel 面板

 JTabbedPane    标签面板

 

6.组件

1) JLabel   标签

2)JTextField 文本输入框

3)JPasswordField password框

4)JCheckBox 多选框

5)JRadiobutton 单选框

6)JButton 提交button

7)JComboBox 下拉框

8)JTable  表格

9)JScrollPane 可滚面板

TestJFrameDemo 窗体

TestJPanelDemo 面板

TestJTabbedPane 标签面板

TestJLabelDemo 标签

TestTextDemo 文本输入框

TestCheckBox 多选框

TestJTableDemo 表格

 

TestUNEditeTable 不可编辑的表格

表格代码演示样例

流式布局 FlowLayout

默认Jpanel採用的流式布局,水平方向上排列,假设一行排不下就自己主动换行显示;当仅仅有一个组将时,默认水平方向居中。

jp.setLayOut(new FlowLayout());;设置当前面板的布局

边界布局 BorderLayout

1.Container getContentPane()

Returns the contentPane object for this frame.

Container c=jf.getContenPane();//获得jf的默认面板

2.Container的api

1)void setLayout(LayoutManager mgr)

Sets the layout manager for this container.

c.setLayout(new BorderLayout);//边框布局将面板分成五部分

2)Component add(Component comp, int index)

Adds the specified component to this container at the given position.

c.add(new JButton("button1"),BorderLayout.NORTH);

1))The code for this applet is as follows:

--------------------------------------------------------------------------------

import java.awt.*;

 import java.applet.Applet;

public class buttonDir extends Applet {

   public void init() {

     setLayout(new BorderLayout());

     add(new Button("North"), BorderLayout.NORTH);

     add(new Button("South"), BorderLayout.SOUTH);

     add(new Button("East"), BorderLayout.EAST);

     add(new Button("West"), BorderLayout.WEST);

     add(new Button("Center"), BorderLayout.CENTER);

   }

 }

网格布局 GridLayout

1. For example, the following is an applet that lays out six buttons into three rows and two columns:

--------------------------------------------------------------------------------

import java.awt.*;

 import java.applet.Applet;

 public class ButtonGrid extends Applet {

     public void init() {

         setLayout(new GridLayout(3,2));

         add(new Button("1"));

         add(new Button("2"));

         add(new Button("3"));

         add(new Button("4"));

         add(new Button("5"));

         add(new Button("6"));

     }

 }

 2.GridLayout的api

GridLayout(int rows, int cols)

Creates a grid layout with the specified number of rows and columns.

GridLayout(int rows, int cols, int hgap, int vgap)

Creates a grid layout with the specified number of rows and columns. 第一个參数是行数,第二个參数是列数,第三个參数是行间距,第四个參数是列间距

箱式布局 Box

A lightweight container that uses a BoxLayout object as its layout manager。

1.BOX的api

1).static Box createHorizontalBox()

Creates a Box that displays its components from left to right. 水平方向排列

2)static Box createVerticalBox()

Creates a Box that displays its components from top to bottom 竖直方向排列

3)演示样例

Box b=Box createHorizontalBox() ;

b.add(new JButton("button1"))

jf.add(b);

事件

採用了观察者模式;事件有三要素是事件源、监听器和事件。

1.swing中的事件监听接口

1)java.awt.event

Interface MouseListener

The listener interface for receiving "interesting" mouse events (press, release, click, enter, and exit) on a component

2)java.awt.event

Interface KeyListener

The listener interface for receiving keyboard events (keystrokes).

3)java.awt.event

Interface ActionListener

The listener interface for receiving action events

适配器模式

final JLabel j1=new JLabel("測试");

JButton jb=new JButton("測试事件监听");

jb.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){

j1.setText("鼠标按下");/j1必须用final修饰。

}

});

总结

Java中的图形界面编程的更多相关文章

  1. 第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  2. Java第5次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  3. Java第05次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  4. JAVA简单Swing图形界面应用演示样例

    JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...

  5. C语言控制台窗体图形界面编程(总结)

    本系列文章是笔者通过学习<C语言控制台窗体界面编程(修正版)>而写(关于此文档的很多其它信息请看本系列文章第一篇),旨在让大家更加清晰简洁easy地学习C语言控制台窗体界面的编程. 通过本 ...

  6. 图形界面编程成就了C++

    听有人说C#.VB比C++好是因为做界面方便还算傻得可爱,听有人说用C++做数值计算而不屑于做界面可就对不起咱C++的恩人了.这我可要说道说道. 想当年C++刚出江湖,名门出身,自立门派,想抢Obje ...

  7. Java计算器的图形界面应用程序

      JAVA计算器的图形界面应用程序 题目简介: 整体分析: 实验代码: /*部分使用插件做界面*/ import java.awt.EventQueue; import javax.swing.JB ...

  8. Linux C 程序 GTK+图形界面编程(22)

    GTK+图形界面编程 Linux大多是在字符界面,但也可以开发图形界面 目前已经存在多种Linux下开发图形界面的程序开发包:最常用的是Qt和GTK+ Qt是一个跨平台的图形界面开发库,不仅仅支持Li ...

  9. Java中的UDP协议编程

    一. UDP协议定义   UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...

随机推荐

  1. MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在

    问题描述:在用vs生成MVC时若使用Internet应用程序为模版,项目建好后重新编译下无法通过,弹出错误: 解决方案:问题出来后,询问了身边很多人都是一头雾水,于是乎各种谷歌和百度,还好功夫不负有心 ...

  2. Mybatis基础入门 I

    作为ORM的重要框架,MyBatis是iBatis的升级版.Mybatis完全将SQL语句交给编程人员掌控,这点和Hibernate的设计理念不同(至于Hibernate的理念,待我先学习学习). 下 ...

  3. MFC中SQLite数据库的使用

    1打开数据库 BOOL playDlg::openData() { WCHAR a[100]; CString path; path = m_exePath+L"sentence_makin ...

  4. C++箴言:理解 new-handler的行为

    当 operator new 不能满足一个内存分配请求时,它抛出一个 exception(异常).很久以前,他返回一个 null pointer(空指针),而一些比较老的编译器还在这样做.你依然能达到 ...

  5. C语言的本质(2)——二进制、八进制、十六进制与十进制

    二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德国数理哲 ...

  6. 用sql语句按周、按月、按季、按年统

    原文地址:http://hi.baidu.com/%BD%F0%D3%F1kl_y/blog/item/1c368ffba9388476024f5645.html --按mySql语法统计按周,月,季 ...

  7. kubuntu/ubuntu下安装fcitx输入法

    1.添加fcitx源(官方的源是旧版,不推荐使用) sudo gedit /etc/apt/sources.list 在sources.list文件中尾部添加: deb http://ppa.laun ...

  8. Android创建启动画面[转]

    每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO.公司的LOGO或者开发者信息.如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥 ...

  9. css3 翻转和旋转的差别

    我曾经一直以为旋转跟翻转一样,今日自己旋转了好久都发觉跟翻转差一点点,纠结了十几分钟才明确,仅仅能怪自己的立体感太差了. css3中的transform中有旋转,放缩,倾斜,平移的功能,分别相应的属性 ...

  10. JavaScript 中的面向对象的初步认识

    我在学习JS的面向对象编程的时候,总是有两个奇怪的问题. 第一个就是:面向对象在JS中很少用到... 可能是目前自己做的项目还是比较简单,前端方面的任务我几乎都是用面向过程的方式写的,所以就导致,我啃 ...