java gui编程入门_第十五讲 JavaGUI编程入门

第十五讲JavaGUI编程入门

主要内容

Java GUI窗口概述

用JFrame类创建窗口

最常用组件的创建和使用

(JLabel、JTextField、JTextArea、JScrollpane、JButton)

Java GUI窗口概述

一个最简单的Java GUI示例

import javax.swing.*;

public class FirstFrame {

public static void main( String[] args ) {

JFrame f = new JFrame();

f.setSize( 300, 200 );

f.setVisible(true);

}

}

问题:

²该窗口的关闭按钮不能结束程序

²窗口无标题

²窗口中没有内容

窗口的界面元素

标签、文本框、按钮、复选框、菜单……

²类创建对象(java.awt,javax.swing)

²对象放置于窗口

²窗口布局

java.awt和javax.swing

创建GUI Application和Applet的必备软件包。

两者中均有一套界面元素组件。风格稍有不同,如:

软件包中还含有布局管理、事件处理的类和接口。

Java屏幕坐标

假如显示器分辩率为1024*768,则屏幕坐标系如下:

(0,0)(1024,0)

屏幕

(0,768)(1024,768)

JFrame类创建窗口

Frame、JFrame可为应用程序构建主框架。几乎所有的GUI应用程序都在主框架中进行。由继承可见,Frame、JFrame是具有Windows窗口特征的容器组件。

JFrame类的层次结构

由此可见,JFrame类继承了Frame

Component:抽象类,归纳了所有图形用户界面上的组件。

Containter:容器也是组件,特别的是容器中可以容放组件。

构造方法

public JFrame():创建一个简单的窗口,默认不可见。

public JFrame(String Title):创建一个带有标题的窗口。窗口标题置为Title,默认不可见。

JFrame的设置和显示方法

public void setBound(int x,int y,int w,int h)

设置窗口左上角位置和窗口大小

public void setVisible(boolean b)显示、隐藏窗口

public void setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

设定窗口响应用户的关闭操作

public void setTitle(String title)设置窗口标题

练习:设计一个可关闭的、确定尺寸的、确定显示位置的、有标题的窗口,如图。

import javax.swing.*;

public class SimpleFrame extends JFrame {

SimpleFrame(){

}

public static void main( String[] args ) {

new SimpleFrame();

}

}

思考

1.如果一个类继承JFrame类,由该类创建的对象是?

2.如何让一个窗口可见?

3.如何设置可关闭的窗口?

4.窗口标题有哪些方法设置?

5.如何设置窗口的大小?

6.JFrame在哪个软件包中?

在JFrame窗口中加入组件

组件不能直接放置到JFrame窗口,要先获取窗口的包容器,再布局,然后将组件加入到容器中。

获取窗口的包容器

public Container getContentPane()

如:

JFrame f=JFrame();

Container c=f.getContentPane();

c.setLayout(new FlowLayout());//进行顺序排放组件的设置

说明:

1、Container类在java.awt包中。

2、默认的布局是叠放形式。(叠放和其它布局以后讨论)

将组件加入到窗口

public void add(Component comp)

如:

c.add(new Button(“Count”));

c.add(new JLabel(“Try”));

调整和设置窗口

public void pack()根据组件调整窗口到适当大小

public void setLocation(int x,int y)窗口左上角设置

public void setResizable(boolean)允许或禁止缩放

public void setSize(int w,int h)窗口大小设置

练习:修改上面的SimpleFrame.java,在窗口中加入一个标签和按钮。

最常用组件的创建和使用

标签(JLabel)

用来显示文字,图标(可以文字与图标同时显示)。

JLabel构造方法

JLabel()创建一个空标签

JLabel(String c)指定标签文本

常用设置方法

设置标签显示文本:public void setText(String c)

取得标签显示文本:public StringgetText()

字体设置:public voidsetFont(Font f)

前景色设置:public void setForeground(Color c)

一个简单的标签示例

单行文本框(JTextField)

构造方法

JTextField()

JTextField(int columns)指定宽度

JTextField(Stringtext, int columns)

常用方法

设置标签显示文本:public void setText(String c)

取得标签显示文本:public StringgetText()

字体设置:public voidsetFont(Font f)

前景色设置:public void setForeground(Color c)

一个单行文本框示例

多行文本框(JTextArea)

构造方法

JTextArea()

JTextArea(int rows,columns)指定尺寸

JTextArea(Stringtext,int rows, int columns)

常用设置方法

public void setLineWrap(boolean wrap):换行状态设置

public void setRows(int rows):设置行数

public void setColumns(int columns):设置列数

说明:颜色、字体、内容的设置同上(setForeground、setFont、setText)

滚动面板JScrollPane

将多行文本框置入滚动面板,就可以生成立体感的文本框。

JScrollPane是一个嵌有滚动条的面板。

JScrollPane将滚动条和滚动条所服务的组件组合在了一起。

构造方法

public JScrollPane(view v)

可用add方法,将滚动面板加入到容器,由此加入到窗口中。

练习:设计并显示如下窗口,在多行文本框中显示“read.txt”的内容。

import java.awt.*;

import javax.swing.*;

import java.io.*;

class ReadFile extends JFrame{

JTextArea t=new JTextArea(12,40);

ReadFile(){

this.setBounds(300,300,500,300);

this.setVisible(true);

}

static String getFileText(){

}

public static void main(String[] args){

new ReadFile();

}

}

按钮(JButton)

用户可通过按钮发布命令。

按钮的创建

构造方法:

JButton()

JButton(String c)指定显示文本

JButton(Icon image)指定显示图标

JButton(String c ,Icon image)

练习:设计容放了三种不同风格按钮的窗口,如图所示。

import java.awt.*;

import javax.swing.*;

public class JButtonTest extends JFrame{

JButton b1,b2,b3;

JButtonTest(){

super("JButton Test");

setDefaultCloseOperation(this.EXIT_ON_CLOSE);Container cc = getContentPane();

cc.setLayout(new FlowLayout());

buttonInit();

cc.add(b1);

cc.add(b2);

cc.add(b3);

this.setBounds(300, 200,350, 200);

setVisible(true);

}

void buttonInit(){

b1=new JButton("Text Button");

b2=new JButton(new ImageIcon("logo.gif"));

b3=new JButton("Java logo",new ImageIcon("logo.gif"));

}

public static void main(String args[]) throws Exception{

newJButtonTest();

}

}

练习:设计如下界面的窗口

思考

1.可在JFrame界面上直接add组件吗?

2.在JFrame界面上放置组件的步骤?

3.add是哪个类的方法?

4.如何设置容器的布局?

5.如何创建一个指定文本的标签?

6.如何创建单行文本框?

7.如何创建多行文本框?

8.怎样将多行文本框包装上滚动条?

9.怎样对多行文本框中的文本设置成自动换行?

10.如何创建指定文字的按钮?

11.如何生成一个颜色对象,并设置常用组件的前景色?

12.如何生成一个字体对象,并设置常用组件的字体?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值