JavaGUI编程简单介绍

 

第十五讲 JavaGUI编程入门

2008-08-23 17:17:30|  分类: JAVA |  标签: |字号 订阅

 

第十五讲 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 String getText()

字体设置:public void setFont(Font f)

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

一个简单的标签示例

 

 

单行文本框(JTextField)

 

构造方法

JTextField()

JTextField(int columns)             指定宽度

JTextField(String text)             指定初始化文本

JTextField(String text, int columns)

 

常用方法

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

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

字体设置:public void setFont(Font f)

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

 

一个单行文本框示例

 

 

多行文本框(JTextArea)

构造方法

JTextArea()

JTextArea(int rows,columns)    指定尺寸

JTextArea(String text)          指定初始化文本

JTextArea(String text,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{

      new   JButtonTest();

  }

}

 

 

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

 

 

思考

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

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

3.    add是哪个类的方法?

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(java)