Java学习日记:UI篇(5)--界面登录跳转

Java学习日记:UI篇(5)–界面登录跳转

这一篇是对第一节登录界面及画图板的综合,在登录界面输入相关信息以后,可跳转至画图板。
基础已在前面叙述,此处直接给代码:

  1. 登陆界面:
package 登录后跳转画图板;

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

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



/**
 * 
 * @author idnihai
 *
 */

public class DrawPadLogin {
	public void showUI() {
		//初始化登陆界面
		
		JFrame jf=new JFrame();
		jf.setTitle("画图板登录");
		jf.setSize(400,300);
		jf.setDefaultCloseOperation(3);//使界面上的关闭键有效
		jf.setResizable(false);//登陆界面大小不可变
		jf.setLocationRelativeTo(null);//默认居中
		
		/**
		 * 布局
		 */
		FlowLayout fl=new FlowLayout();//流式布局
		jf.setLayout(fl);
		
		/**
		 * 界面组件
		 */
		//标签
		JLabel zhanghaojl =new JLabel("账号");
		JLabel mimajl =new JLabel("密码");
		//设置输入框
		JTextField jtf=new JTextField();		
		//设置密码框
		JPasswordField jpf =new JPasswordField();
		
		//按钮
		JButton login_jb=new JButton("登录");//登录按钮

		
		/**
		 * 组件属性
		 */
		//输入框大小
		Dimension dim = new Dimension(100,30);
		jtf.setPreferredSize(dim);
		jpf.setPreferredSize(dim);
		//登录按钮大小
		Dimension dim1 = new Dimension(70,30);
		login_jb.setPreferredSize(dim1);
		
		/**
		 * 向界面中添加组件
		 */
		
		jf.add(zhanghaojl);//账号标签
		jf.add(jtf);//账号输入框
		jf.add(mimajl);//密码标签
		jf.add(jpf);//密码输入框
		jf.add(login_jb);//登录按钮
		jf.setVisible(true);
		
		
		DrawListener dl=new DrawListener();

		//绑定按钮
		login_jb.addActionListener(dl);	
		//传参
		dl.zhanghaoField =jtf;
		dl.pwdField      =jpf;
		
	}
	public static void main(String[] args) {
		
		DrawPadLogin dpl=new DrawPadLogin();
		dpl.showUI();
	}

}

  1. 登录接口:
package 登录后跳转画图板;

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

import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class DrawListener implements ActionListener{
	
	//传值,获取账号,密码
	JTextField zhanghaoField; 
	JPasswordField pwdField;

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String btnstr = e.getActionCommand();
		if(btnstr.equals("登录")) {
			if(zhanghaoField.getText().equals("123")&&pwdField.getText().equals("123")) {//账号、密码均为123,getText已不被推荐使用
			System.out.println(btnstr);
			DrawBoard.main(null);
			}
			else{
				System.out.println("登陆失败。");
			}
		}
		
	}
}
  1. 画图板界面:
package 登录后跳转画图板;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JFrame;

public class DrawBoard {
	public void showUI() {
		
		JFrame jf =new JFrame();
		jf.setTitle("画图板");
		jf.setSize(800,600);
		//jf.setLocation(null);  这是个啥东西,报错
		jf.setLocationRelativeTo(null);//默认居中
		jf.setDefaultCloseOperation(3);//关闭
		jf.setResizable(false);//固定大小
		
		FlowLayout  fl =new FlowLayout();
		jf.setLayout(fl);
		
		
		DrawListener2 dl2 =new DrawListener2();//调用DrawListener	
		
		String [] drawoption ={"直线","圆","矩形"};
		for(int i=0;i<drawoption.length;i++) {
			JButton btn = new JButton(drawoption[i]);
			jf.add(btn);
			btn.addActionListener(dl2);
		}

		//Color c =new Color();		
		Color [] coloroption = {Color.BLACK,Color.blue,Color.CYAN,Color.gray,Color.GREEN,Color.red};
		Dimension dim= new Dimension(30,30);
		for(int i=0;i<coloroption.length;i++) {
			JButton btn = new JButton();
			btn.setBackground(coloroption[i]);
			
			btn.setPreferredSize(dim);
			jf.add(btn);
			btn.addActionListener(dl2);
		}

		//添加组件
				
		jf.setVisible(true);//可视化
		//绑定组件
		jf.addMouseListener(dl2);		
		
		//取画笔
		Graphics g =jf.getGraphics();
		//System.out.println(g);
		dl2.g =g;
				
	}
	//主函数
	public static void main(String[] args){
		DrawBoard db =new DrawBoard();
		db.showUI();		
	}	
}

  1. 画图板接口类:
package 登录后跳转画图板;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.Graphics;

public class DrawListener2 implements MouseListener,ActionListener{
	int x1,x2,y1,y2;
	Graphics g;	
	String btnstr="";		
	ArrayList list = new ArrayList();
	
	public void actionPerformed(ActionEvent e) {
		btnstr =e.getActionCommand();//用于获得按钮上的信息
		list.add(btnstr);//将从按钮上获得的信息放入数组,可以实现:点击一个线形按钮后,换颜色不需要重新点击线形按钮即可画图
		//System.out.println(list);
		if (btnstr=="") {
			//取颜色 设置给画笔 
			 //按钮对象
			JButton btn =(JButton) e.getSource();
			Color color = btn.getBackground();//获得颜色按钮信息
			g.setColor(color);//将颜色按钮上的颜色赋给画笔
		}
	
	}

	public void mouseClicked(MouseEvent e) {//点击
		//System.out.println("点击");
	}

    public void mousePressed(MouseEvent e){//按下
    	//获取按下鼠标时的坐标值
    	x1 = e.getX();
    	y1 = e.getY();
    	//System.out.println("按下");
    }

    public void mouseReleased(MouseEvent e) {//释放
    	//获取松开鼠标时的坐标值
    	x2 = e.getX();
    	y2 = e.getY(); 
    	    	
		System.out.println(btnstr);
		
		String btnstr1;
		btnstr1=(String) list.get(list.size() - 1);
		int i=2;
		while(btnstr1.contentEquals("")) {
				btnstr1=(String) list.get(list.size() - i);
				i++;		
		}
		if(btnstr1.equals("直线")) {
    		//画直线
			
    			g.drawLine(x1, y1, x2, y2);			
    		}
		else if(btnstr1.equals("圆")) {
		//画圆
			g.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y2-y1));
			}
		else if(btnstr1.equals("矩形")) {
			//画矩形
			g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y2-y1));   	
			}
    }
    public void mouseEntered(MouseEvent e) {//进入界面    	
    }
    public void mouseExited(MouseEvent e) {//离开界面    	
    }    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值