java界面——可视化窗口入门级

JAVA界面

目标:我们需要自己创建一个类似QQ登录的界面,出现类似界面然后实现基本功能。

写一个窗体:

public class Login {

	public static void main(String[] args) {
		Login lo = new Login();
		lo.showUI();
	}
	public void showUI(){
		//窗体类
		javax.swing.JFrame jf = new javax.swing.JFrame();
		//窗体名称
		jf.setTitle("QQ登陆界面");
		//窗体大小(具体值跟电脑显示器的像素有关,可调整到合适大小)
		jf.setSize(400, 500);
		//设置退出进程的方法
		jf.setDefaultCloseOperation(3);
		//设置居中显示用3
		jf.setLocationRelativeTo(null);
		
		//流式布局管理器
		java.awt.FlowLayout flow = new java.awt.FlowLayout();
		jf.setLayout(flow);  //给窗体设置为流式布局——从左到右然后从上到下排列自己写的组件顺序
		
		//图片,冒号里是你存图片的地址
		javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\01.jpg");			
		//标签
		javax.swing.JLabel jla = new javax.swing.JLabel(icon);
		java.awt.Dimension dm0=new java.awt.Dimension(280,200);
		//设置大小
		jla.setPreferredSize(dm0);//应用大小到相应组件
		jf.add(jla);//将组件加到窗体上
		
		//文本框
		javax.swing.JTextField jtf = new javax.swing.JTextField();
		java.awt.Dimension dm = new java.awt.Dimension(280, 30);
		//(除了JFrame)其它所有组件设置大小都是该方法
		jtf.setPreferredSize(dm);
		jf.add(jtf);
		
		//复选框
		javax.swing.JCheckBox jcb = new javax.swing.JCheckBox("记住密码");
		jf.add(jcb);
		
		javax.swing.JCheckBox jcb2 = new javax.swing.JCheckBox("忘记密码");
		jf.add(jcb2);
		
		//按钮
		javax.swing.JButton jbu = new javax.swing.JButton("登陆");
		jf.add(jbu);   //给窗体添加一个按钮对象
		
		jf.setVisible(true);   //设置可见,放在代码最后一句
	}

}

窗体如下:

 

对……有点丑……不过基本功能是实现了,具体图片和大小可以再调节。

添加监听器:

首先我们在上面的基础上进行一些调整,然后写出我们的目标界面:

 

然后我们给界面添加一些功能:当我们方别在两个文本框输入账号和密码之后点击登录,如果密码正确则显示登陆成功,否则显示登录失败。这里需要我们监听“登录”按钮是否被点击,需要我们写一个监听器,java中按钮监听器的父类是ActionListener。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;
//按钮监听器的父类ActionListener里面有函数可以直接检测按钮是否被点击
public class ButListener implements ActionListener {
	//定义JTextFieldb变量jt,用来保存传递过来的文本框对象
	private JTextField jt;
	private JTextField jt2;
	
	//定义set方法,初始化jt
	public void setJt(JTextField jt,JTextField jt2){
		this.jt = jt;
		this.jt2=jt2;
	}

	public void actionPerformed(ActionEvent e) {
		//检测到按钮被点击自动计入到这个函数,这个函数是ActionListener类的方法
		//接下来获取文本框里面的字符串
		String name = jt.getText();
		String password=jt2.getText();
		//验证账号和密码,如果正确显示登陆成功的界面
		//账号123对应密码789
		if("123".equals(name)&&"789".equals(password)){
			Sucess sc=new Sucess();//新的界面(跟旧的差不多后面有代码)
			sc.showUI();

		}else{
			//登录失败界面写这里
		}	
	}	
}

然后把自己写好的监听器加到我们已有的界面上:

 

 

 

public class Login {


public static void main(String[] args){
	Login lo=new Login();
	lo.showUI();
}
public void showUI(){
	javax.swing.JFrame jf= new javax.swing.JFrame();
	jf.setTitle("QQ登录界面");
	jf.setSize(300,400);
	jf.setDefaultCloseOperation(3);
	jf.setLocationRelativeTo(null);
	
	java.awt.FlowLayout flow=new java.awt.FlowLayout();
	jf.setLayout(flow);
	
	javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\01.jpg");
	javax.swing.JLabel jla= new javax.swing.JLabel(icon);
	java.awt.Dimension dm0=new java.awt.Dimension(280,200);
	jla.setPreferredSize(dm0);
	jf.add(jla);
	
	javax.swing.JTextField jtf=new javax.swing.JTextField();
	java.awt.Dimension dm1=new java.awt.Dimension(280,30);
	jtf.setPreferredSize(dm1);
	jf.add(jtf);
	
	javax.swing.JTextField jtf2=new javax.swing.JTextField();
	java.awt.Dimension dm2=new java.awt.Dimension(280,30);
	jtf2.setPreferredSize(dm2);
	jf.add(jtf2);

	javax.swing.JCheckBox jcb3 = new javax.swing.JCheckBox("忘记密码");
	jf.add(jcb3);
	
	javax.swing.JCheckBox jcb4 = new javax.swing.JCheckBox("记住密码");
	jf.add(jcb4);

	javax.swing.JButton jbu = new javax.swing.JButton("登陆");
	java.awt.Dimension dm3=new java.awt.Dimension(80,30);
	jbu.setPreferredSize(dm3);
	jf.add(jbu); 
	
	//给按钮添加动作监听器方法
	ButListener but = new ButListener();
	//创建一个监听器
	jbu.addActionListener(but);	
	//把监听器加在“登录”按钮上
    but.setJt(jtf,jtf2);
    
		
	jf.setVisible(true); 
}
}

这时我们运行结果如下:

 

原谅这个图片……没有图片找了个表情包暂时用一下,大概意思就是这个。

登陆成功界面代码附录如下:

public class Sucess {

public void showUI(){
	javax.swing.JFrame jf= new javax.swing.JFrame();
	jf.setTitle("登录成功界面");
	jf.setSize(300,400);
	jf.setDefaultCloseOperation(3);
	jf.setLocationRelativeTo(null);
	
	java.awt.FlowLayout flow=new java.awt.FlowLayout();
	jf.setLayout(flow);
	
	javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\02.jpg");
	javax.swing.JLabel jla= new javax.swing.JLabel(icon);
	java.awt.Dimension dm0=new java.awt.Dimension(280,200);
	jla.setPreferredSize(dm0);
	jf.add(jla);
		
	jf.setVisible(true); 
}
}

 

 

 

  • 88
    点赞
  • 449
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值