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. 如何生成一个字体对象,并设置常用组件的字体?

  • 相关阅读:
    Atitit 经济学常见的流派 古典主义与凯恩斯主义
    Atitit 学习方法 体系化学习方法 Excel 科目,分类,专业 三级分类。。 知识点。。 课程就是每一个知识点的详细化。。 比如经济学 类别 专业 xx概论知识点 3、金
    atiitt it学科体系化 体系树与知识点概念大总结.xlsx
    Atitit 减少财政支出普通人如何蹭政府补贴措施 attilax大总结.docx
    Atitit 信用管理概论 attilax学习心得
    Atitit.月度计划日程表 每月流程表v5
    Atitit 企业6大职能 attilax总结
    Atitit 常见每日流程日程日常工作.docx v8 ver ampm imp 签到 am y 天气情况检查 am y 晨会,每天或者隔天 am 每日计划(项目计划,日计划等。 am
    Atitit 财政赤字解决方案
    Atitit 建设自己的财政体系 attilax总结 1.1. 收入理论 2 1.2. 收入分类 2 1.3. 2 1.4. 非货币收入 2 1.5. 2 1.6. 降低期望 2 1.7.
  • 原文地址:https://www.cnblogs.com/hanyuan/p/2587329.html
Copyright © 2011-2022 走看看