java网络 可视化_Java可视化AWT
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相关推荐
- java 网络实验_java网络聊天室实验
使用java写的一个网络聊天小程序,采用UDP协议.将左下角的ip改为目标地址即可发送信息.作为java网络编程入门的一个参考.最后一幅图为程序中所使用图片,来自仙剑奇侠传五的壁纸. 1.[文件] C ...
- java网络编程_Java网络编程进阶:通过JSSE创建安全的数据通信
小编说:本文作者孙卫琴,知名IT作家和Java专家.本文将通过一个范例向大家介绍JSSE是如何实现安全的网络通信的. 在网络上,信息在由源主机到目标主机的传输过程中会经过其他计算机.一般情况下,中间的 ...
- java网络高级_Java高级-增高
1.java泛型 泛型 提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型 泛型本质是参数化类型 extends T>表示该通配符所代表的类型是T类型的子类 super T& ...
- java 闹钟代码_JAVA可视化闹钟源码
1 packageClock;2 3 importsun.audio.AudioPlayer;4 importsun.audio.AudioStream;5 6 import javax.swing. ...
- java 网络五子棋_Java实现五子棋网络版
本文实例为大家分享了Java实现五子棋网络版的具体代码,供大家参考,具体内容如下 需求分析: 对于网络五子棋而言,在普通五子棋的基础上需要添加以下功能: 1.拥有服务器端和客户端,用户通过客户端登录服 ...
- java 网络实验_Java实验五网络编程与安全
实验五 网络编程与安全 实验准备 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式 ...
- java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
看了一下对Java GUI讨论的帖子,所以写了一篇文章来阐述一下各种GUI技术的优劣. Java世界中,目前最知名的三大GUI库分别是: 1.AWT(Abstract Window Toolkit)抽 ...
- java 网络序_Java使用网络字节序进行数据传输
Java使用网络字节序进行数据传输 一.消息格式 采用udp协议,协议数据有 长度.设备名称.命令编号.消息体4个字段组成 字段 长度 设备名称 命令编号 消息体 长度 4字节 2字节 1字节 变长 ...
- java 网络文件_java实现从网络下载多个文件
java从网络下载多个文件,供大家参考,具体内容如下 首先是打包下载多文件,即打成压缩包在下载. 其次 别处的资源:可以是别的服务器,可以是网上的资源,当然也可以是本地的(更简单) 最后:一次性下载, ...
最新文章
- 买了一个软件测试就业班课程,不知道值不值
- mysql5.7gtid_MySQL5.7 GTID 运维实战
- 长春市计算机学校老照片,松江这所学校一百年啦!一组老照片回忆曾经的旧时光…...
- 设计模式:责任链模式(Chain of Responsibility)
- [leetcode] 141.环形链表
- 细看CRLF注入***的原理和其防范措施
- postfix导致maillog填满磁盘空间的巨坑!
- 顶级程序员的心得 Coders at Work (II)
- node中操作MySQL
- 并发容器——ConcurrentHashMap
- python入门第四章十大歌手 手机通讯录 神奇魔方阵 青春有你
- Flex Module优化
- KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
- kotlin的属性代理
- 品质催生消费升级 ACCESS集团和VTN国际品牌会员俱乐部的跨境电商之路
- 1236. Find All Numbers Disappeared in an Array
- activemq学习记录(二)(使用p2p模式和使用发布订阅模式去生产以及消费数据)
- echart改变折线图和折线点的颜色以及折线点的大小
- 如何用html制作快速邮箱发到手机qq,简单两步使用node发送qq邮件的方法
- java基础----(三大特性:封装,继承,多态)
热门文章
- 开关灯问题(python)实现
- room eq wizard软件闭环电声学测量设置 rew声学测试
- Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链
- arch linux安装到手机上,archlinux 的真机安装archlinux+deepin桌面系统(上)
- Lazarus - Free Pascal IDE 窗口合并
- java jdk1.8源码下载_jdk-sources
- 设计模式中英文汇总分类
- 思考|在这个信息时代,我们是否迷失了自己
- 2020计算机专业报考指南,2020年上半年信息安全工程师考试报考指南
- zeronet导航(zeronet网站推荐,网站推荐)--持续更新 zeronet地址收集