[Java开发实例] 画板开发第一站:图形界面开发基础

图形用户界面(Graphics User Interface,GUI)
个人认为,所谓图形界面开发,不过是像小孩子玩积木一样,把一个个组件添加上去,组成一个作品。

首先,我们来了解一下这些组件,也就是搭积木的原材料。
    Java提供的图形界面类有两大类:
    1.AWT组件(基础)
        AWT组件是jdk1.0的时候推出的图形界面类,这套组件是存储在java.awt包下的类。
        (采用了C和C++的语言实现的,并且在实现的时候还调用了操作系统底层的绘图函数实现的组件,无法实现跨平台)
    2.SWING组件(扩展)
        SWING组件是jdk1.4的时候推出的图形界面类,这套组件是存储在javax.swing包下的类。
        SWING是基于AWT组件的基础上,采用纯Java语言构建的一套新的跨平台组件。
        
        不管使用的是AWT组件还是SWING组件开发的应用程序是可以跨平台的。

常用的组件类和辅助类
    1.容器组件类:组件上能添加其他的组件,那该组件就是容器组件类。
        JFrame    窗体容器组件类,顶级容器:要实现一个图形界面,首先必须要先有一个顶级容器做为载体。
        JFrame类的常用方法
              JFrame frame = new JFrame();
              frame.setTitle("图形界面");// 设置窗体的标题
              frame.setSize(300, 350);// 设置窗体的大小
              frame.setLocation(0, 0);//设置窗体显示的位置
              frame.setLocationRelativeTo(null);// 设置窗体相对于另一个组件的中央位置,如果参数为null,则在屏幕的中央,且一定要在设置大小后
              frame.setDefaultCloseOperation(3);// 设置窗体的关闭操作;3表示关闭窗体退出程序;2表示如果只有一个窗体则关闭窗体退出程序,如果多个窗体则关闭当前窗体,其他的不退出;1表示关闭窗体但是程序不结束;0表示点击关闭按钮无效。
              frame.setLayout(fl);//设置窗体的布局方式为fl流式布局
              frame.add();//添加组件
              frame.setResizable(false);// 禁止调整窗体的大小
              frame.setVisible(true);// 设置窗体为可见


    2.元素组件类:用来显示文字、图片或接收用户输入信息的就是元素组件类。
        JLabel            标签元素组件类        显示文字或图片,也可以文字图片一起显示。
              JLabel labelName = new JLabel("标签");
        JTextField        文本输入框元素组件类    接收用户输入的信息,然后将输入的信息直接显示出来。
        JPasswordField    密码输入框元素组件类    接收用户输入的信息,然后将输入的每一个字符用对应的一个符号代替显示。
        JButton            按钮元素组件类        显示文字或图片,也可以文字图片一起显示,有按下和释放的效果。
        使用方法: frame.add(元素组件对象);//(要在窗体可见之前完成)。
        设置大小:setSize()方法只有顶级容器组件有效;
        setPreferredSize()方法,除顶级容器组件外,其他组件设置大小的方法。


    3.辅助类:帮助组件完成某一个特定功能的类。
        javax.swing.ImageIcon    图标类    加载磁盘上的图片文件到内存中。
              // 实例化ImageIcon对象,加载磁盘上的图片到内存中
              ImageIcon icon = new ImageIcon("C:\\Users\\any\\Desktop\\53.png");
        java.awt.FlowLayout        流式布局类        流式布局的布局效果类似于Word文档,但是不能像Word一样回车换行,只能是自动换行。
                                布局类是针对容器组件设置的;在java.awt和javax.swing包下,所有以Layout结尾的都是布局类。
        java.awt.Dimension        封装组件宽度和高度的类


上述的组件类是属于SWING组件中的类,如果要使用记得加上它们的包名,
        例如:javax.swing.JFrame,
            也可以使用import javax.swing.JFrame引入类,然后直接使用类名。
    如果想要使用AWT组件,只需要将类名的第一字母J去掉就可以,例如:java.awt.Frame。      


 
登录界面示例:
 

package login;

import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;

import java.awt.FlowLayout;
import java.awt.Dimension;

public class Login {
    public static void main(String[] args) {
         Login mylogin=new Login();
         mylogin.InitUI();
    }
    public void InitUI(){
        //组件类
        JFrame frame=new JFrame();
        frame.setTitle("Login");
        frame.setSize(300,330);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(3);
        
        FlowLayout fl=new FlowLayout(FlowLayout.CENTER);
        frame.setLayout(fl);    
        
        ImageIcon icon=new ImageIcon("C:\\Users\\lenovo\\Desktop\\179b2b02a0efd6cd.jpg");
        JLabel lb=new JLabel(icon);
        lb.setPreferredSize(new Dimension(300,150));
        frame.add(lb);
        
        JLabel labelName=new JLabel("账号:");
        frame.add(labelName);
        JTextField textName = new JTextField();
        //文本框大小
        textName.setPreferredSize(new Dimension(210,30));
        frame.add(textName);
        
        JLabel labelName2=new JLabel("密码:");
        frame.add(labelName2);

        JPasswordField textName2 = new JPasswordField();
        //文本框大小
        textName2.setPreferredSize(new Dimension(210,30));
        frame.add(textName2);
        
        JButton bt =new JButton("登录");
        bt.setPreferredSize(new Dimension(70,50));
        frame.add(bt);
        
        frame.setVisible(true);
    }
}


图形开发效果图

 

QQ:375471598

微信:Q159837547

欢迎过来勾搭小邱同学,或者对文章提出修改意见,共同成长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值