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();

}

}

6a8b42a45f82a67757e5260b958b4956.png

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();

}

}

e91ab2958cf85652c8a007013afc222f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值