AWT

总体上Swing组件替代了绝大部分AWT组件,对AWT图形用户界面编程有极好的补充和加强。

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/1.

*/

public class FrameTest {

public static void main(String[] args) {

Frame f = new Frame("测试窗口");

// 设置窗口的大小、位置

f.setBounds(30,30,250,200);

// 将窗口显示出来

f.setVisible(true);

}

}

AWT容器

图形界面编程,类似于小朋友玩的拼图游戏,容器类似于拼图的母板,普通组件类似于拼图图块。

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/1.

*/

public class PanelTest {

public static void main(String[] args) {

Frame f = new Frame("测试页面");

Panel p = new Panel();

p.add(new TextField(20));

p.add(new Button("Click Me"));

f.add(p);

f.setBounds(30,30,250,120);

f.setVisible(true);

}

}

FlowLayout布局管理器

组件像水流一样向某方向流动,遇到障碍就折回,重头开始排列。

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/1.

*/

public class FlowLayoutTest {

public static void main(String[] args) {

Frame f = new Frame("测试窗口");

// 设置Frame使用FlowLayout布局管理器

f.setLayout(new FlowLayout(FlowLayout.LEFT,20,5));

// 向窗口添加10个按钮

for (int i = 0;i<10;i++) {

f.add(new Button("Button"+i));

}

// 设置窗口为最佳大小

f.pack();

f.setVisible(true);

}

}

BorderLayout布局管理器

BorderLayout将容器分为EAST、SOUTH、WEST、NORTH、CENTER五个区域。普通组件可以放在这五个区域中的任意一个。

默认添加到中间区域。

package ch11;

import java.awt.*;

import static java.awt.BorderLayout.*;

/**

* Created by Jiqing on 2016/12/1.

*/

public class BorderLayoutTest {

public static void main(String[] args) {

Frame f = new Frame("测试窗口");

// 设置Frame容器使用BorderLayout布局管理器

f.setLayout(new BorderLayout(50,50));

f.add(new Button("S"),SOUTH);

f.add(new Button("N"),NORTH);

// 默认添加到中间区域

f.add(new Button("M"));

f.add(new Button("E"),EAST);

f.add(new Button("W"),WEST);

f.pack();

f.setVisible(true);

}

}

GirdLayout布局管理器

GirdLayout布局管理器将容器分割成纵横分割的网格,每个网格所占据的领域大小相同。

package ch11;

import java.awt.*;

import static java.awt.BorderLayout.*; // 默认布局

/**

* Created by Jiqing on 2016/12/1.

*/

public class GridLayoutTest {

public static void main(String[] args) {

Frame f = new Frame("计算器");

Panel p1 = new Panel();

p1.add(new TextField(30));

f.add(p1,NORTH); // import static java.awt.BorderLayout.*;

Panel p2 = new Panel();

p2.setLayout(new GridLayout(3,5,4,4));

String[] name = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","."};

for (int i = 0;i

p2.add(new Button(name[i]));

}

f.add(p2);

f.pack();

f.setVisible(true);

}

}

GridBagLayout

与GridLayout不同,它可以跨越一个或多个网络,并可以设置网络的大小互不相同。

增加布局的灵活性

使用步骤

创建GridBagLayout布局管理器

创建GridBagConstraints对象

建立关联

添加组件

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class GridBagTest {

private Frame f = new Frame("测试窗口");

private GridBagLayout gb = new GridBagLayout();

private GridBagConstraints gbc = new GridBagConstraints();

private Button[] bs = new Button[10];

public void init() {

f.setLayout(gb);

for (int i = 0;i

bs[i] = new Button("Button"+i);

}

// 所有组件都可以横向、纵向扩大

gbc.fill = GridBagConstraints.BOTH;

gbc.weightx = 1;

addButton(bs[0]);

addButton(bs[1]);

addButton(bs[2]);

gbc.gridwidth = GridBagConstraints.REMAINDER;

addButton(bs[3]);

gbc.weightx = 0;

addButton(bs[4]);

gbc.gridwidth = 2;

addButton(bs[5]);

gbc.gridwidth = 1;

gbc.gridheight = 2;

gbc.gridwidth = GridBagConstraints.REMAINDER;

addButton(bs[6]);

gbc.gridwidth = 1;

gbc.gridheight =2;

gbc.weighty = 1;

addButton(bs[7]);

gbc.weighty = 0;

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbc.gridheight = 1;

addButton(bs[8]);

addButton(bs[9]);

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new GridBagTest().init();

}

private void addButton(Button button) {

gb.setConstraints(button,gbc);

f.add(button);

}

}

BoxLayout

BoxLayout 可以在垂直和水平两个方向摆放控件

package ch11;

import javax.swing.*;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class BoxLayoutTest {

private Frame f = new Frame("测试");

public void init() {

f.setLayout(new BoxLayout(f,BoxLayout.Y_AXIS));

// 下面按钮将垂直排列

f.add(new Button("First Button"));

f.add(new Button("Second Button"));

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new BoxLayoutTest().init();

}

}

package ch11;

import javax.swing.*;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class BoxTest {

private Frame f = new Frame("测试");

// 定义水平组件Box对象

private Box horizontal = Box.createHorizontalBox();

// 定义垂直组件Box对象

private Box verical = Box.createVerticalBox();

public void init() {

horizontal.add(new Button("H btn1"));

horizontal.add(new Button("H btn2"));

verical.add(new Button("V btn1"));

verical.add(new Button("V btn2"));

f.add(horizontal,BorderLayout.NORTH);

f.add(verical);

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new BoxTest().init();

}

}

常用的

package ch11;

import javax.swing.*;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class CommonComponent {

Frame f = new Frame("测试");

Button ok = new Button("Confirm");

CheckboxGroup cbg = new CheckboxGroup();

Checkbox male = new Checkbox("Male",cbg,true);

Checkbox female = new Checkbox("Female",cbg,false);

Choice colorChooser = new Choice();

List colorList = new List(6,true);

TextArea ta = new TextArea(5,20);

TextField name = new TextField(50);

public void init() {

colorChooser.add("red");

colorChooser.add("green");

colorChooser.add("blue");

colorList.add("red");

colorList.add("green");

colorList.add("blue");

Panel bottom = new Panel();

bottom.add(name);

bottom.add(ok);

f.add(bottom,BorderLayout.SOUTH);

Panel checkPanel = new Panel();

checkPanel.add(colorChooser);

checkPanel.add(male);

checkPanel.add(female);

Box topLeft = Box.createVerticalBox();

topLeft.add(ta);

topLeft.add(checkPanel);

Box top = Box.createHorizontalBox();

top.add(topLeft);

top.add(colorList);

f.add(top);

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new CommonComponent().init();

}

}

Dialog对话框

对话框

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class DialogTest {

Frame f = new Frame("测试");

Dialog d1 = new Dialog(f,"Modal Dialog",true);

Dialog d2 = new Dialog(f,"Not Modal Dialog",false);

Button b1 = new Button("Open MD");

Button b2 = new Button("Open NMD");

public void init() {

d1.setBounds(20,30,300,400);

d2.setBounds(20,30,300,400);

b1.addActionListener(e->d1.setVisible(true));

b2.addActionListener(e->d2.setVisible(true));

f.add(b1);

f.add(b2,BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new DialogTest().init();

}

}

package ch11;

import java.awt.*;

/**

* Created by Jiqing on 2016/12/2.

*/

public class FileDialogTest {

Frame f = new Frame("测试");

FileDialog d1 = new FileDialog(f,"load file",FileDialog.LOAD);

FileDialog d2 = new FileDialog(f,"save file",FileDialog.SAVE);

Button b1 = new Button("open");

Button b2 = new Button("save");

public void init() {

b1.addActionListener(e->{

d1.setVisible(true);

System.out.println(d1.getDirectory()+d1.getFile());

});

b2.addActionListener(e->{

d2.setVisible(true);

System.out.println(d2.getDirectory()+d2.getFile());

});

f.add(b1);

f.add(b2,BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

}

public static void main(String[] args) {

new FileDialogTest().init();

}

}

java网络 可视化_Java可视化AWT相关推荐

  1. java 网络实验_java网络聊天室实验

    使用java写的一个网络聊天小程序,采用UDP协议.将左下角的ip改为目标地址即可发送信息.作为java网络编程入门的一个参考.最后一幅图为程序中所使用图片,来自仙剑奇侠传五的壁纸. 1.[文件] C ...

  2. java网络编程_Java网络编程进阶:通过JSSE创建安全的数据通信

    小编说:本文作者孙卫琴,知名IT作家和Java专家.本文将通过一个范例向大家介绍JSSE是如何实现安全的网络通信的. 在网络上,信息在由源主机到目标主机的传输过程中会经过其他计算机.一般情况下,中间的 ...

  3. java网络高级_Java高级-增高

    1.java泛型 泛型 提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型 泛型本质是参数化类型 extends T>表示该通配符所代表的类型是T类型的子类 super T& ...

  4. java 闹钟代码_JAVA可视化闹钟源码

    1 packageClock;2 3 importsun.audio.AudioPlayer;4 importsun.audio.AudioStream;5 6 import javax.swing. ...

  5. java 网络五子棋_Java实现五子棋网络版

    本文实例为大家分享了Java实现五子棋网络版的具体代码,供大家参考,具体内容如下 需求分析: 对于网络五子棋而言,在普通五子棋的基础上需要添加以下功能: 1.拥有服务器端和客户端,用户通过客户端登录服 ...

  6. java 网络实验_Java实验五网络编程与安全

    实验五 网络编程与安全 实验准备 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式 ...

  7. java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    看了一下对Java GUI讨论的帖子,所以写了一篇文章来阐述一下各种GUI技术的优劣. Java世界中,目前最知名的三大GUI库分别是: 1.AWT(Abstract Window Toolkit)抽 ...

  8. java 网络序_Java使用网络字节序进行数据传输

    Java使用网络字节序进行数据传输 一.消息格式 采用udp协议,协议数据有 长度.设备名称.命令编号.消息体4个字段组成 字段 长度 设备名称 命令编号 消息体 长度 4字节 2字节 1字节 变长 ...

  9. java 网络文件_java实现从网络下载多个文件

    java从网络下载多个文件,供大家参考,具体内容如下 首先是打包下载多文件,即打成压缩包在下载. 其次 别处的资源:可以是别的服务器,可以是网上的资源,当然也可以是本地的(更简单) 最后:一次性下载, ...

最新文章

  1. 买了一个软件测试就业班课程,不知道值不值
  2. mysql5.7gtid_MySQL5.7 GTID 运维实战
  3. 长春市计算机学校老照片,松江这所学校一百年啦!一组老照片回忆曾经的旧时光…...
  4. 设计模式:责任链模式(Chain of Responsibility)
  5. [leetcode] 141.环形链表
  6. 细看CRLF注入***的原理和其防范措施
  7. postfix导致maillog填满磁盘空间的巨坑!
  8. 顶级程序员的心得 Coders at Work (II)
  9. node中操作MySQL
  10. 并发容器——ConcurrentHashMap
  11. python入门第四章十大歌手 手机通讯录 神奇魔方阵 青春有你
  12. Flex Module优化
  13. KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
  14. kotlin的属性代理
  15. 品质催生消费升级 ACCESS集团和VTN国际品牌会员俱乐部的跨境电商之路
  16. 1236. Find All Numbers Disappeared in an Array
  17. activemq学习记录(二)(使用p2p模式和使用发布订阅模式去生产以及消费数据)
  18. echart改变折线图和折线点的颜色以及折线点的大小
  19. 如何用html制作快速邮箱发到手机qq,简单两步使用node发送qq邮件的方法
  20. java基础----(三大特性:封装,继承,多态)

热门文章

  1. 开关灯问题(python)实现
  2. room eq wizard软件闭环电声学测量设置 rew声学测试
  3. Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链
  4. arch linux安装到手机上,archlinux 的真机安装archlinux+deepin桌面系统(上)
  5. Lazarus - Free Pascal IDE 窗口合并
  6. java jdk1.8源码下载_jdk-sources
  7. 设计模式中英文汇总分类
  8. 思考|在这个信息时代,我们是否迷失了自己
  9. 2020计算机专业报考指南,2020年上半年信息安全工程师考试报考指南
  10. zeronet导航(zeronet网站推荐,网站推荐)--持续更新 zeronet地址收集