Java实现图形界面

用java实现以下QQ登录窗口的具体步骤。

这里写图片描述

使用工具:eclipse

一:QQ登录界面

需要用到的容器组件:
顶级容器JFrame
标签组件JLable
输入框组件JTextField
密码输入框JPasswordField
按钮JButton

以下代码可连同注释复制到eclipse中运行,需要先创建同名包和类

package jiemian;

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

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

//1.创建名为Login的类,在该类中创建一个名为InitUI的方法,图形界面就在此方法中实现
public class Login {

    public static void main(String[] args) {
        Login log=new Login();
        log.InitUI();
    }
public void InitUI()
{
//1.1创建一个顶级容器,也就是空白窗口,并为此窗口设置属性(窗口名称,大小,显示位置,关闭设置)

// 用JFrame创建一个名为frame的顶级容器,需要添加的包名为javax.swing.JFrame
JFrame frame=new JFrame();
//设置窗口名称
frame.setTitle("Login");
//设置窗口大小
frame.setSize(540,427);
//设置窗口位于屏幕中央
frame.setLocationRelativeTo(null);
//参数为3时,表示关闭窗口则程序退出
frame.setDefaultCloseOperation(3);

//1.2设置窗体上组件的布局,此处使用流式布局FlowLayout,流式布局类似于word的布局
//用FlowLayout创建一个名为f1的对象,需要添加的包名为java.awt.FlowLayout,其中LEFT表示左对齐,CENTER表示居中对齐,RIGHT表示右对齐
FlowLayout f1=new FlowLayout(FlowLayout.LEFT);
//frame窗口设置为f1的流式左对齐
frame.setLayout(f1);

//1.3在窗体上添加图片,文字

//在添加图片之前,先把图片从磁盘中加载到内存中来,使用ImageIcon,需要添加的包名为javax.swing.ImageIcon,括号中为图片路径,路径中要使用”/”,不能使用”\”
ImageIcon imag1=new ImageIcon("H:/1.png");
//JLabel可在顶级容器中添加图片文字,需要添加的包名javax.swing.JLabel,此处将上面加载的图片创建为一个JLabel对象
JLabel pic1=new JLabel(imag1);
//将创建的图片对象添加到 窗口上
frame.add(pic1);


//创建一个空的JLabel,它的长度宽度为110,30,因为窗口是流式左对齐,为了将”账号”一栏添加在正中间,所以左侧由空的JLabel填充
JLabel name1=new JLabel();
//设置空JLabel长度大小,此处不能使用setSize设置大小,setSize只能设置顶级容器大小,此处用setPreferredSize,Dimension给出大小,需要添加的包名为java.awt.Dimension.
name1.setPreferredSize(new Dimension(110,30));
//将空JLabel添加入窗口
frame.add(name1);

//同上,此处添加的不是空JLabel,而是内容为“账号”的JLabel
JLabel name=new JLabel("账号:");
frame.add(name);

//JTextField在窗口上添加一个可输入可见文本的文本框,需要添加的包名为javax.swing.JTextField.
JTextField nametext=new JTextField();
//设置文本框大小
nametext.setPreferredSize(new Dimension(220, 30));
//添加到窗口上
frame.add(nametext);

//同name1
JLabel name2=new JLabel();
name2.setPreferredSize(new Dimension(110,30));
frame.add(name2);

//同name1
JLabel name3=new JLabel();
name3.setPreferredSize(new Dimension(110,30));
frame.add(name3);

//同name
JLabel password=new JLabel("密码:");
frame.add(password);

//JPasswordField创建一个密码文本框,里面输入的文本是不可见的,其他同nametext
JPasswordField passwordtext=new JPasswordField();
passwordtext.setPreferredSize(new Dimension(220, 30));
frame.add(passwordtext);

//同name1
JLabel name4=new JLabel();
name4.setPreferredSize(new Dimension(110,30));
frame.add(name4);

//同name1
JLabel name5=new JLabel();
name5.setPreferredSize(new Dimension(220,30));
frame.add(name5);

//JButton创建一个可点击的按钮,按钮上可显示文本图片
JButton bu=new JButton("登录");
bu.setPreferredSize(new Dimension(80,30));
frame.add(bu);

//设置窗口可见,此句一定要在窗口属性设置好了之后才能添加,不然无法正常显示
frame.setVisible(true);
}
}
  • 24
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值