zoukankan      html  css  js  c++  java
  • 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. 如何生成一个字体对象,并设置常用组件的字体?

  • 相关阅读:
    安装vmware tools 使用hgfs共享文件一波三折
    RedHat停止sendmail加快启动
    [宏]_IO, _IOR, _IOW, _IOWR 宏的用法与解析
    __VA_ARGS__
    超级终端串口发送命令,uboot接收不到
    statfs函数获取大容量磁盘信息速度慢的解决过程
    ctags使用简介
    做技术多久才能入门
    linux目录和文件介绍
    OpenScalesLayer
  • 原文地址:https://www.cnblogs.com/hanyuan/p/2587329.html
Copyright © 2011-2022 走看看