java图形用户界面缩小_java图形用户界面

Java图形用户界面

图形用户界面设计

JFrame类

标签

布局管理器

图形用户界面设计

创建GUI组件的步骤:

设计组件,合理布局 —> 定义界面上的响应。

GUI支持的包

AWT包:包含有基本组件类,布局管理类,容器类和接口类。

Java.awt.

Swing包:AWT包的升级版本。

javax.swing。

GUI容器与组件

组件不能独立的显示,必须要在容器上。

Java的容器分为两种:顶层容器和中间层容器。

顶层容器:可以独立浮动于屏幕上,GUI必有。

JFrame:作为应用程序的主窗口;

JApplet:小程序窗口显示;

JWindows:窗口。

中间层容器:不可独立存在。

JPanel:面板;

JScrollPane:滚动面板。

JFrame类

一些基本设定如下代码:

import java.awt.Color;//颜色类

import javax.swing.JFrame;//主窗口

public class Example {

public static void main(String[] args) {

//JFrame();默认的无标题信息。

JFrame f = new JFrame("My windous");

//设定窗口的大小,以像素为单位。

f.setSize(300,200);

//先调用getContentPane获得内容面板,在设置背景颜色。

f.getContentPane().setBackground(Color.BLACK);

//设置窗口可见,默认不可见。

f.setVisible(true);

}

}

运行结果:

29f2bad90687e3d8ce6f6e340322bbc3.png

标签

标签的构造方法:

import java.awt.Label //包的导入

JLabel();//创建空标签

JLabel(String text);//创建名为text的标签

JLabel(String text, int align);//创建名字为text的标签,align是对其方式

align的值可以为:JLabel.RIGHT;JLabel.LEFT;JLabel.CENTER等。

添加标签后需要再使用getContentPane()获得主窗口的内容面板再使用add添加对象。具体见本节代码(如下):

Font类来设置字体;

用法:Font(String name, int style, int size);

三个参数name:字体,如,黑体,宋体等;

style:字型,系统提供三个整形常量来代表表示字型。

Font.PLAIN(正常体),Font.ITALIC(斜体),Font.BOLD(粗体)。

size:字号。

创建完字体对象之后,使用setFont(Font fn)方法调用。

Color类设置颜色

Color(int red, int green, int blue);

使用rgb组合。取值在0~255之间。也可以直接调用Color.red等来直接设定。

创建完对象之后,需要调用setForeground(Color c)方法来实现。

import java.awt.Color;

import java.awt.Font;

import java.awt.Label;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class Example {

public static void main(String[] args) {

JFrame f = new JFrame("My windous");

f.setSize(300,200);

f.getContentPane().setBackground(Color.RED);//先调用getContentPane获得内容面板,在设置背景颜色。

JLabel l1 = new JLabel("用户名:", JLabel.RIGHT);

f.getContentPane().add(l1);//先获取内容面板,在将label内容添加在标签中

Font f1 = new Font("黑体", Font.ITALIC, 30);//先建立一个对象

l1.setFont(f1);//在使用标签对象调用

//设置标签颜色

Color c = new Color(200, 100, 150);//0~255之间,三个参数组合,也可以使用Color.red等。

l1.setForeground(c);//由l1标签调用setForeGround方法来设置标签颜色

f.setVisible(true);

}

}

Button类:

JButton(); //创建一个无文字显示的按钮

JButton(String text);创建一个内容为text的按钮。

JPanel j = new JPanel();//创建面板

f.add(j);

//按钮组件的运用

JButton b1 = new JButton("开机");

j.add(b1);

JPanel类

JPanel:中间容器,用于添加组件,这样可以使得窗口上有多个组件。

先创建JPanel对象,在使用add()方法添加即可。

布局管理器

布局管理器用于设置组件的显示方式和显示位置。

有以下几种布局方式:

FlowLayout:流式布局:

简单的从左到右的顺序布局。

//创建test类来继承JFrame类

class test extends JFrame{

//定义5个要显示的按钮

JButton b1,b2,b3,b4,b5;

//在构造函数中添加按钮的定义

public test() {

b1 = new JButton("按钮1");

b2 = new JButton("按钮2");

b3 = new JButton("按钮3");

b4 = new JButton("按钮4");

b5 = new JButton("按钮5");

//定义一个流式布局

FlowLayout f = new FlowLayout();

//获取窗口的内容面板

Container c = this.getContentPane();

//设置流式布局方法

c.setLayout(f);

//添加按钮

c.add(b1);

c.add(b2);

c.add(b3);

c.add(b4);

c.add(b5);

}

}

输出结果:

21b19f32fe296221b4798e132e9689ea.png

BorderLayout:边界布局:

按照东南西北中位置来布局。

//创建test类来继承JFrame类

class test extends JFrame{

//定义5个要显示的按钮

JButton b1,b2,b3,b4,b5;

//在构造函数中添加按钮的定义

public test() {

b1 = new JButton("按钮1");

b2 = new JButton("按钮2");

b3 = new JButton("按钮3");

b4 = new JButton("按钮4");

b5 = new JButton("按钮5");

//定义一个边界布局

BorderLayout f = new BorderLayout();

//获取窗口的内容面板

Container c = this.getContentPane();

//设置流式布局方法

c.setLayout(f);

//添加按钮,以及其相关位置:北南西东中。

c.add(b1,BorderLayout.NORTH);

c.add(b2,BorderLayout.SOUTH);

c.add(b3,BorderLayout.WEST);

c.add(b4,BorderLayout.EAST);

c.add(b5,BorderLayout.CENTER);

}

}

输出结果:

c776d43adabff0a89dec0d1777ce8b5a.png

GridLayout:网格布局:

按照划分的网格区域来布局。

//创建test类来继承JFrame类

class test extends JFrame{

//定义5个要显示的按钮

JButton b1,b2,b3,b4,b5;

//在构造函数中添加按钮的定义

public test() {

b1 = new JButton("按钮1");

b2 = new JButton("按钮2");

b3 = new JButton("按钮3");

b4 = new JButton("按钮4");

b5 = new JButton("按钮5");

//定义一个网格布局,3行2列

GridLayout f = new GridLayout(3,2);

//获取窗口的内容面板

Container c = this.getContentPane();

//设置流式布局方法

c.setLayout(f);

//添加按钮

c.add(b1);

c.add(b2);

c.add(b3);

c.add(b4);

c.add(b5);

}

}

输出结果:

e3008d2c97bbbc9078a79e669d208c19.png

还有其他布局:CardLayout:卡片布局;GridBagLayout:网格包布局;手工布局。

setLayout(null):

将界面布局管理的主动权交给用户,由用户自行设置坐标来实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值