page contents

Java教程——JAVA实现图形界面编程

本文讲述了Java教程——JAVA实现图形界面编程!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-08-jxNrmTjE64e9587f9d99c.jpg

本文讲述了Java教程——JAVA实现图形界面编程!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

在平时生活中用电脑的时候,我们可以发现我们所运行的所有的程序基本都在一个窗口中运行。这个窗口可以实现我们和程序的交互,可以让一个程序更加的精彩和多元。实际上现在我们所用的很多操作系统都是以窗体为基础实现自己程序或者软件的功能。

我们学习Java语言所要编写的程序绝不是仅仅能够在“命令提示符”中运行的简单的黑底白字,而是我们平常所看到的,让你对编程有了兴趣的丰富多彩的软件。而这些软件是离不开图形界面的。所以我们就有必要首先掌握图形界面的基本使用方法。

02 Java的图形界面类

Java给我们提供了两套图形界面包:

一套是AWT组件(java.awt),中文译为抽象窗口工具包,是整个Java中最基本的图形界面类、一切图形界面的基础。它在实现的时候直接调用了系统底层的绘图函数,这样就导致这套组件在不同平台上需要独立去做开发。

另一套是SWING组件(javax.swing),又叫轻量级组件,它是在基于AWT组件的基础上,采用Java代码构建的一套新的组件,与操作系统没有直接的联系,很好的实现了Java的跨平台性,也是我们以后使用的最主要的组件类。

03 实现界面所需要的API类

我在此以自己做的通讯录为例,阐述实现界面所需要的API类;

1、容器组件类

所谓容器,就是类似于收纳盒可以容纳东西的物体。类似地,容器组件就是指可以添加容器组件或者元素的组件,最典型的就是我们经常看到的窗口组件。

JFrame是SWING包下的顶级容器组件类。所谓顶级容器,就是说它只能装别的组件,而不能被其他组件所包含。JFrame的作用就是实现一个基本的窗口以及其开关。我们可以用setSize,setLocation,setDefaultCloseOperation,setTitle,setBounds(int x, int y, int width, int height)等该类自带的方法去设置它的属性。

2、元素组件类

接下来就是元素组件类,元素组件就是将按钮、标签、复选框等的类实现某种具体功能的组件,一般只用来显示文字、图片或接收输入。

我们可以用JLabel类来添加标签元素类,显示文字或者图片信息;用JTextField类实现文本的输入;用JPasswordField类实现密码的输入(输入文本但是不显示);用JCheckBox类实现复选框;用JButton类实现按钮的实例化,并可以显示文字或图片信息。

3、辅助类

辅助类就是有助于我们优化界面或者帮助某个组件完成功能的类,典型的常用类有如下几个:

当在一个界面中存在多个元素时,我们需要以辅助的流式布局类:java.awt.FlowLayout

当需要控制组件大小时,我们就需要用到java.awt.Dimension这个类;

当打算将容器分为上北下南左西右东中间五个部分时(每一个部分都只能添加一个组件

),那么我们就需要使用边框布局类:java,swing.BorderLayout;

当需要将容器分为行列阵来摆放组件时,你可以用java.awt.GridLayout(int rows, int cols);

当需要显示图片时,我们需要图标类:javax.swing.ImageIcon;它能将电脑磁盘中的图片加载到内存中,然后组件显示这个图标对象。

(注意:在使用组件类和辅助类时,都要先实例化对象。所有的布局类都是针对容器组件的,它是用来设置添加到容器上的组件的排列对齐方式

,且流式布局类的布局方式为自动换行布局。在窗体设置好后不要忘记在最后要有frame.setVisible(true),它表示令窗体可见)

04 实例,界面的实现

首先是通讯录的主界面,新建一个主类Test和主界面tongxu类,在Test类的主方法中创建对象,在tongxu类里定义初始化界面的构造方法;

创建窗体对象并命名,实例化元素组件对象;

添加设置窗体容器组件对象的属性值:标题、大小、坐标、显示位置、关闭操作、布局、可见、不可改变大小等等……

代码如下:

package tongxunxlu;

public class Test {

  public static void main(String args[]) {

    new tongxu();

    }

}//该类用于启动这个程序

public class tongxu extends JFrame implements ActionListener

{

  public tongxu() {

    JFrame mainFrame = new JFrame("通讯录");//创建窗体对象并命名

    mainFrame.setBounds(600, 400, 560, 430);//设置窗体大小和坐标

    mainFrame.setLayout(null);//将容器布局设为绝对布局

    mainFrame.setResizable(false);//设置窗体不可改变大小

    

    Button bt1 = new Button("信息录入");//设置一个“增加记录”的按钮

    mainFrame.add(bt1);//添加按钮到容器

    bt1.setBounds(140,50,120,60);//设置按钮在容器中的大小和坐标

    bt1.addActionListener(this);//进行监听

    

    Button bt2 = new Button("信息删除");

    mainFrame.add(bt2);

    bt2.setBounds(300,50,120,60);

    bt2.addActionListener(this);

    

    Button bt3 = new Button("信息浏览");

    mainFrame.add(bt3);

    bt3.setBounds(140,140,120,60);

    bt3.addActionListener(this);

    

    Button bt4 = new Button("信息查询");

    mainFrame.add(bt4);

    bt4.setBounds(300,140,120,60);

    bt4.addActionListener(this);

    

    Button bt5 = new Button("程序退出");

    mainFrame.add(bt5);

    bt5.setBounds(140,230,120,60);

    bt5.addActionListener(this);

    

    Button bt6 = new Button("信息修改");

    mainFrame.add(bt6);

    bt6.setBounds(300,230,120,60);

    mainFrame.setVisible(true);//设置窗体可见

    bt6.addActionListener(this);

    }

}

这时程序运行的效果如图:

attachments-2023-08-VLFSz6FU64e9582eaafd2.jpg

简单介绍添加信息界面。新建一个Insert类,依然是创建窗体对象并命名,步骤同上,不同的是添加了文本框类

代码如下:

public class Insert extends JFrame implements ActionListener{

  public TextField text_1,text_2,text_3,text_4,text_5;

  public Insert(){

    setTitle("信息录入");

    setBounds(600, 400, 560, 400);//设置容器的大小和坐标

    setLayout(new GridLayout(6,2));//将容器设置为4行2列

    text_1=new TextField();//添加文本框

    text_2=new TextField();text_3=new TextField();

    text_4=new TextField();text_5=new TextField();

    Label lab_1=new Label("请输入联系人姓名:");//添加文本

    Label lab_2=new Label("请输入联系人籍贯:");

    Label lab_3=new Label("请输入联系人手机号码1:");

    Label lab_4=new Label("请输入联系人手机号码2:");

    Label lab_5=new Label("请输入联系人电子邮箱:");

    Button bt7=new Button("确定");bt7.addActionListener(this);//添加按钮

    Button bt8=new Button("清空");bt8.addActionListener(this);

    add(lab_1);add(text_1);//将文本、文本框以及按钮按排好位置添加到容器

    add(lab_2);add(text_2);

    add(lab_3);add(text_3);

    add(lab_4);add(text_4);

    add(lab_5);add(text_5);

    add(bt7); add(bt8);

    setVisible(true);//设置窗体可见

    }

}    

这时程序运行的效果如图:

attachments-2023-08-iJEfTnvE64e958116e2d3.jpg

接下来是删除信息界面。

代码如下:

public class Delete extends JFrame implements ActionListener {

  public TextField text_1,text_2;

  public Delete() {

    setTitle("信息删除");

    setBounds(600, 400, 560, 200);

    setLayout(new GridLayout(3, 2));

    text_1 = new TextField();

    text_2 = new TextField();

    Label lab_3 = new Label("请输入要删除信息的联系人姓名:");

    Label lab_4 = new Label("结果");

    Button bt9 = new Button("确定");

    Button bt10 = new Button("清空");

    bt9.addActionListener(this);

    bt10.addActionListener(this);

    add(lab_3);add(text_1);

    add(lab_4);add(text_2);

    add(bt9);add(bt10);

    setVisible(true);//设置窗体可见

  }

}  

这时程序运行的效果如图:

attachments-2023-08-cnVp7IQG64e957f95f645.jpg

接下来是查询信息界面。

代码如下:

public class Select extends JFrame implements ActionListener {

  public TextField text_1,text_2,text_3,text_4,text_5;

  Select() {

    setTitle("信息查询");

    setBounds(600, 400, 560, 400);//设置容器的大小和坐标

    setLayout(new GridLayout(6, 2));//将容器设置为6行2列

    text_1 = new TextField();//添加文本框

    text_2 = new TextField();

    text_3 = new TextField();

    text_4 = new TextField();

    text_5 = new TextField();

    Label lab_1 = new Label("请输入要查询的联系人姓名:");//添加文本

    Label lab_2 = new Label("该联系人的籍贯为:");

    Label lab_3 = new Label("该联系人手机号码1是:");

    Label lab_4 = new Label("该联系人手机号码2是:");

    Label lab_5 = new Label("该联系人电子邮箱为:");

    Button bt11 = new Button("确定");//添加按钮

    Button bt12 = new Button("清空");

    add(lab_1);add(text_1);//将文本、文本框以及按钮按排好位置添加到容器

    add(lab_2);add(text_2);

    add(lab_3);add(text_3);

    add(lab_4);add(text_4);

    add(lab_5);add(text_5);

    add(bt11);add(bt12);

    bt11.addActionListener(this);

    bt12.addActionListener(this);

    setVisible(true);//设置窗体可见

  }

}

这时程序运行的效果如图:

attachments-2023-08-Z0aPaSXn64e957e066b3f.jpg

剩余功能界面代码都大同小异,在此就不一一列出啦。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Java编程语言,推荐大家关注一个微信公众号:Java圈子。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Java入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2023-03-2AoKIjPQ64014b4ad30a3.jpg

  • 发表于 2023-08-26 09:42
  • 阅读 ( 232 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1316 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章