JAVA登录界面并在窗口上实现算法

JAVA登录界面并在窗口上实现算法,第1张

JAVA登录界面并在窗口上实现算法

目录

一,相关内容介绍

二,相关代码表示

第一种方法:

 第二种方法:


        今天我将为大家用两种方式来说一下Java登陆界面并实现其中的某个算法。

一,相关内容介绍

第一种主要是以网格布局管理器为主的

第二种主要是以精确定位方法为主的

网格布局管理器网格布局管理器(GridLayout,简称网格管理器)把容器空间按照用户的设置平均划分分成不同行与列的网络,每个网格可以放置一个组件,这种布局方式对数量众多的组件很合适。创建网格管理器时,要给出网格的行列数,在窗体容器中,可以直接通过setLayout(new GridLayout(2,1));方式调用一个2行1列的网格管理器。网格之间还可以添加间距,例如设置GridLayout(8,1,10.10);网格布局管理器时,网格为8行1列,网格之间的距离为10个点距。使用网格管理器定义的网格数可以比存放的组件多,但不能少。如果希望某个网格为空白,可以为他存放上一个空标签对象。网格布局管理器较长使用,其方便,简单,规范。

精确定位方法:在容器中存放组件也可以不用布局管理器,使用setLayout(null);方法关闭默认布局管理器,这时可以使用Jframe类的setBounds(int x,int y,int w,int h);方法精确指出组件在容器中的存放位置,该方法有4个参数,x和y指定组件在容器左上角的水平和垂直位置坐标;w指组件宽度;h指组件高度。

二,相关代码表示 第一种方法:

首先建立一个空白窗体

import javax.swing.*;

public class J10 extends Jframe {
	
	J10(){
		setTitle("登录界面");
		setSize(400, 400);
		setVisible(true);
		setLocationRelativeTo(null);
		
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new J10();
	}

}

 

接着往空白窗口添加相关组件

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class J11 extends J10 implements ActionListener {
	
	JButton b1, b2;
	
	J11() {
		setLayout(new GridLayout(3, 1));
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel p3 = new JPanel();
		
		JLabel l1 = new JLabel("账号:");
		JLabel l2 = new JLabel("密码:");
		JTextField t = new JTextField(16);
		JPasswordField pass = new JPasswordField(16);
		
		b1 = new JButton("登录");
		b2 = new JButton("注册");
		b1.addActionListener(this);
		b2.addActionListener(this);
		
		p1.add(l1); p1.add(t);
		p2.add(l2); p2.add(pass);
		p3.add(b1); p3.add(b2);
		add(p1); add(p2); add(p3);
	}
	
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == b2) {
			new J12().setTitle("注册窗口");
			this.setVisible(false);
		}
	}

	public static void main(String[] args) {new J11().setVisible(true);}

}

 

 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class J12 extends J10 implements ActionListener {
	
	JButton b;
	
	J12() {
		setLayout(new GridLayout(4, 1));
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel p3 = new JPanel();
		JPanel p4 = new JPanel();
		
		JLabel l1 = new JLabel("申请账号:");
		JLabel l2 = new JLabel("设置密码:");
		JLabel l3 = new JLabel("确认密码:");
		
		JTextField t = new JTextField(16);
		JPasswordField pass1 = new JPasswordField(16);
		JPasswordField pass2 = new JPasswordField(16);
		
		b = new JButton("注册并登录");
		b.addActionListener(this);
		
		p1.add(l1); p1.add(t);
		p2.add(l2); p2.add(pass1);
		p3.add(l3); p3.add(pass2);
		p4.add(b);
		add(p1); add(p2); add(p3); add(p4); 
	}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == b) {
			new J13().setTitle("随机数排序窗口");
			this.setVisible(false);
		}
	}
	
	public static void main(String[] args) {new J12().setVisible(true);}

}

 最后实现随机数算法

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class J13 extends J10 implements ActionListener {
	
	JButton b;
	static String str = "",res  = "";
	static int[] a = new int[10];
	
	J13() {
		Random r = new Random();
		for (int i = 0; i < 10; i ++) {
			a[i] = r.nextInt(100);
			str = str + a[i] + " ";
		}
		
		//冒泡排序
		for (int i = 0; i < 9; i ++)
			for (int j = 0; j < 9-i; j ++)
				if (a[j] > a[j+1]) { int t = a[j]; a[j] = a[j+1]; a[j+1] = t;}
		
//		//选择排序
//		for (int i = 0; i < 9; i ++)
//			for (int j = i+1; j < 10; j ++)
//				if (a[i] > a[j]) {int t = a[i]; a[i] = a[j]; a[j] = t;}
		
		for (int i = 0; i < 10; i ++)
			res = res + a[i] + " ";
		

		
		setLayout(new GridLayout(2, 1));
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		
		JLabel l = new JLabel("十个随机数:");
		Jtextarea t = new Jtextarea(str, 1, 20);
		b = new JButton("点击进行排序");
		b.addActionListener(this);
	
		p1.add(l); p1.add(t);
		p2.add(b);
		add(p1); add(p2);
	}
	
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == b) new J14();
	}

	public static void main(String[] args) {new J13().setVisible(true);}

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class J14 extends J10 implements ActionListener {
	JButton b;
	
	J14() {
		setLayout(new GridLayout(2, 1));
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		
		JLabel l = new JLabel("排序后的数:");
		Jtextarea t = new Jtextarea(J13.res, 1, 20);
		b = new JButton("点击结束");
		b.addActionListener(this);
		
		p1.add(l);p1.add(t);
		p2.add(b);
		add(p1); add(p2);
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == b) System.exit(0);
	}

	public static void main(String[] args) {new J14().setVisible(true);}

}

 

现在我把上面的用两个窗口实现

1.创建窗口,并添加组件

package wp32;
import java.awt.*;
import java.awt.event.ActionEvent;
//import java.awt.GridLayout;
import java.awt.event.ActionListener;
import javax.swing.*;
public class J20 extends Jframe { 
	J20(){
		setTitle("登录界面");
		setSize(400, 400);
		setLocationRelativeTo(null);
		setVisible(true);
		setLayout(new GridLayout(3,1));
		JPanel p1=new JPanel();
		JPanel p2=new JPanel();                                          
		JPanel p3=new JPanel();
		JLabel l1=new JLabel("账户:");
		JLabel l2=new JLabel("密码: ");
		JTextField t1=new JTextField(16);
		JTextField t2=new JTextField(16);
		 final JButton b1=new JButton("登录");
		 final JButton b2=new JButton("退出");
		JCheckBox c=new JCheckBox("忘记密码");
		
		p1.add(l1);	p1.add(t1);
		p2.add(l2);	p2.add(t2);
		p3.add(b1);	p3.add(b2);p3.add(c);
		add(p1);	add(p2); add(p3);
		
		b1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource()==b1) {
					new J21().setVisible(true);;  
				}
			}

		} );
		b2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource()==b2) {
					System.exit(0);
			}
			}
		});
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new J20().setVisible(true);
	}


}

 

2.实现算法

package wp32;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.*;

public class J21 extends Jframe {
	JButton b;
	static String str="",res="";
	static int[]a=new int[10];
	J21() {
		Random r=new Random();
		for(int i=0;i<10;i++) {
			a[i]=r.nextInt(100);
			str=str+a[i]+" ";
		}
			//冒泡排序
			//for(int i1=0;i1<9;i1++)
				//for(int j = 0;j<9-i1;j++)
					//if(a[j]>a[j+1]) {
					//	int t=a[j];
						//a[j]=a[j+1];
						//a[j+1]=t;
					//}
			//for(int i1=0;i1<10;i1++)
				//res=res+a[i1]+" ";
			
			 //选择排序
		for (int i = 0; i < 9; i ++)
				for (int j = i+1; j < 10; j ++)
					if (a[i] > a[j]) {int t = a[i]; a[i] = a[j]; a[j] = t;}
		for(int i=0;i<10;i++)
			res=res+a[i]+" ";
			setTitle("算法实现");
			setSize(400, 400);
			setLocationRelativeTo(null);
			setLayout(new GridLayout(3,1));
			JPanel p1=new JPanel();
			JPanel p2=new JPanel();
			JPanel p3=new JPanel();
			
			JLabel l1=new JLabel("十个随机数");
			JLabel l2=new JLabel("排序后的数");
			Jtextarea t=new Jtextarea(str,1,20);
			Jtextarea t1=new Jtextarea(res,1,20);
			b=new JButton("结束排序");
			b.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					if(e.getSource()==b) {
						System.exit(0);
					}
				}

			} );
			p1.add(l1); p1.add(t);
			p2.add(l2);p2.add(t1);
			p3.add(b);
			add(p1); add(p2);add(p3);
		}
	

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new J21().setVisible(true);
	}

	
	}


 

 第二种方法:
package 登录界面;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Random;

import javax.swing.*;

//import 窗口.f1;

//import 窗口.Buttonb1;
//import 窗口.Buttonb2;

public class loginBox {
	public static void main(String[] args) {
		Jframe JF=new Jframe("登录界面");
		JF.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
		JF.setLocationRelativeTo(null);
		JF.setSize(400, 400);		
		//取得窗口的内容面板
		Container C=JF.getContentPane();
		//采用绝对布局,自己定义位置
		JF.setLayout(null);
		//设置文本框
		JTextField[] JTF= {new JTextField(null,10),new JTextField(null,10)};
		//通过标签JLabel设置标题、用户名、密码
		JLabel title=new JLabel("登录界面1");
		title.setBounds(20, 10, 100, 20);
		title.setFont(new Font("serif",Font.PLAIN,20));//设置标签字体与字号
		//添加标签
		C.add(title);
		JLabel jl1=new JLabel("用户名:");
		jl1.setBounds(50,75,300,40);
		C.add(jl1);
		JTF[0].setBounds(120, 135,200, 25);
		//添加文本框
		C.add(JTF[0]);
		JLabel jl2=new JLabel("密    码:");
		jl2.setBounds(50,125,300,40);
		C.add(jl2);
		JTF[1].setBounds(120, 89, 200, 25);
		C.add(JTF[1]);
		//添加两个按钮
		JButton[] btn= {new JButton("登录"),new JButton("退出")};
		//JPanel bt1=new JPanel();
		//将两个按钮放到JPanel上,在添加到设置位置
		//按钮无法直接设置出现位置,即setBounds()
		//bt1.setBounds(80,180,63,40);
		btn[0].setBounds(100,210,63,20);
		btn[1].setBounds(195,210,63,20);
		C.add(btn[0]);
		C.add(btn[1]);
		//添加复写框
		JCheckBox JCB=new JCheckBox("忘记密码");
		JCB.setBounds(280, 210, 100, 20);
		JCB.setFont(new Font("serif",Font.PLAIN,12));
		C.add(JCB);
		//C.add(bt1);
		//窗口可调节大小,可视
		JF.setResizable(false);
		JF.setVisible(true);
		//设置点击登录和退出的监听器的功能
				btn[0].addActionListener((ActionListener) new Buttonb1());
				btn[1].addActionListener((ActionListener) new Buttonb2());
		//设置复选框的监听器功能
				CBHandler h=new CBHandler();//创建监听器对象
				JCB.addItemListener(h);
	}
}

//实现复选框接口方法的内部类
class CBHandler implements ItemListener{

	public void itemStateChanged(ItemEvent e) {
	
	}

}


//创建退出的功能
class Buttonb2 implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		
		System.exit(0);
		
	}
}

    //第一次创建页面(同jframe)
//创建第一次登录的功能以及登陆完后的新页面
class Buttonb1 implements ActionListener{
	public void actionPerformed(ActionEvent e) {
			
		//Button f1 = new Button("运算");
		Jframe F=new Jframe();
		F.setTitle("这是登录后的另一个注册界面");
		F.setSize(400, 400);
		F.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
		F.setLocationRelativeTo(null);
		F.setLocationRelativeTo(null);
		F.setLayout(null);
		F.setVisible(true);
		//JPanel JP=new JPanel();
		JLabel j1=new JLabel("自己的相关信息:");
		j1.setFont(new Font("serif",Font.BOLD,12));//设置标签字体与字号
		j1.setBounds(10, 20, 200, 20);
		JLabel j2=new JLabel("1.性别:");
		j2.setFont(new Font("serif",Font.BOLD,12));//设置标签字体与字号
		j2.setBounds(20, 60, 200, 20);
		JRadioButton jb1=new JRadioButton("男");
		jb1.setBounds(80, 100, 100, 20);
		JRadioButton jb2=new JRadioButton("女");
		jb2.setBounds(200, 100, 100, 20);
		JLabel j3=new JLabel("2.输入爱好:");
		j3.setBounds(20, 150, 200, 20);
		JTextField JTF=new JTextField();
		JTF.setBounds(50,180,300,100);
		JButton JB1=new JButton("确定");
		JB1.setBounds(60, 300, 100, 30);
		JButton JB2=new JButton("退出");
		JB2.setBounds(220, 300, 100, 30);
		F.add(j1);
		F.add(j2);
		F.add(jb1);
		F.add(jb2);
		F.add(j3);
		F.add(JTF);
		F.add(JB1);
		F.add(JB2);
	//设置点击登录和退出的监听器的功能
	JB1.addActionListener((ActionListener) new Buttonb1());
	JB2.addActionListener((ActionListener) new Buttonb2());
}
}





//创建第二个页面的退出的功能
class JB2 implements ActionListener{
public void actionPerformed(ActionEvent e) {

System.exit(0);

}
	private void setLayout(GridLayout gridLayout) {
		// TODO 自动生成的方法存根
		
	}
	
	
	//设置运算按钮的监控器内容,展示下一个新页面
	class Buttonb1  implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			Jframe f1=new Jframe();
			f1.setTitle("确定后打开的另一个新的界面");
			f1.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
			f1.setLocationRelativeTo(null);
			f1.setLocationRelativeTo(null);
			f1.setLayout(null);
			f1.setVisible(true);
			JLabel l1=new JLabel("随机数的算法");
			JTextField J1=new JTextField();
			J1.setBounds(50,180,300,100);
			//JPanel P1=new JPanel();
			//f1.add(P1);
			f1.add(l1); f1.add(J1);
			
			
			
			
			
			
		}
	}
}






 

 

以上就简单的说说这两个方法。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5672517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存