当前位置:编程学习 > JAVA >>

java写个登陆小程序

我有一段代码,想请高手帮我把代码改一下,该成我要求的界面,界面要求如下

代码如下

package name;

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

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

public class MyFrame extends JFrame{
 //标签
 JLabel label,label2;
 //文本框
 JTextField usernametext;
 
 //密码框
 JPasswordField password;
 
 //按钮
 JButton loginBut,exitBut;
 public MyFrame(){
  setTitle("QQ登陆界面");
  //窗口的主容器
  final Container c =  getContentPane();
  c.setLayout(null); //让容器采用空布局
  c.setBackground(Color.GREEN);
  
  final Icon icon1 = new ImageIcon("src/images/1.gif");
  
  label = new JLabel("账号:");
  label.setIcon(icon1);
  //label.setHorizontalTextPosition(SwingConstants.LEFT);
  c.add(label);
  label.setBounds(10, 80, 80, 20);
  
  usernametext = new JTextField();
  c.add(usernametext);
  usernametext.setBounds(100, 80, 100, 20);
  
  final Icon icon2 = new ImageIcon("src/images/4.gif");
  label2 = new JLabel("密码:");
  label2.setIcon(icon2);
  c.add(label2);
  label2.setBounds(10, 120, 80, 20);
  
  password=new JPasswordField();
  c.add(password);
  password.setBounds(100, 120, 100, 20);
   
  loginBut = new JButton("进入"); // 实例化组件
  c.add(loginBut);//加入容器
  loginBut.setIcon(icon1); //设置按钮显示图片
  loginBut.setRolloverIcon(icon2); //设置鼠标经过按钮时的图片
  loginBut.setBounds(50, 160, 80, 20);//设置组件的位置
  loginBut.setToolTipText("进入请点击该按钮!");
  //给按钮注册监听器
  final myActionLis lis = new myActionLis();
  loginBut.addActionListener(lis);
  
  exitBut = new JButton();
  exitBut.setText("回滚");//设置按钮值
  c.add(exitBut);
  exitBut.setBounds(140, 160, 80, 20);
  
  setSize(400,300);
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

 public static void main(final String[] args) {
  new MyFrame();
 }
 
 class myActionLis implements ActionListener{

  public void actionPerformed(final ActionEvent e) {
   //获取文本框或者密码框的值(内容)
   final String name = usernametext.getText();
   final String pwd = password.getText();
   if(name.equals("") || pwd.equals("")){
    //弹出提示框
    JOptionPane.showMessageDialog(null, "账号或者密码不能为空!");
   }
   else{
    if(name.equals("631411672") && pwd.equals("19900505")){
     JOptionPane.showMessageDialog(null, "恭喜您!登录成功!");
    }
    else{
     JOptionPane.showMessageDialog(null, "账号或者密码错误!请重新输入!");
    }
   }
  }
  
 }
}

追问:诶,那是上课时的作业,现在都下课了,日,从下午两点上到六点半,真郁闷
答案:首先建立数据库

import java.sql.*;
public class zhanghao
{
 public static void main(String args[])throws Exception
{
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection con=DriverManager.getConnection("jdbc:odbc:zhanghu");
  Statement s=con.createStatement();
  //s.executeUpdate("create table zhanghu("+"id char(10),"+"name char(15),"+"password integer"+")");
 // s.executeUpdate("insert into zhanghu values("+"'0001','xxx',1990)");
  //s.executeUpdate("insert into zhanghu values("+"'0002','qqq',1)");
 // s.executeUpdate("insert into zhanghu values("+"'0003','xxx',110)");
   s.close();
con.close();
}
}

然后设置主程序

import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class zh extends JFrame implements ActionListener
{
  JLabel name=new JLabel("   姓名");
  JTextField inputname=new JTextField();
  JLabel password=new JLabel("   账号");
  JPasswordField ps=new JPasswordField(10);
  JButton tijiao=new JButton("提交");
  JButton chongzhi=new JButton("重置");
  Container cp=getContentPane();

public zh(){
  setVisible(true);
  setSize(300,150);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  cp.setLayout(new GridLayout(3,2));
  cp.add(name);
  cp.add(inputname);
  cp.add(password);
  cp.add(ps);
  cp.add(tijiao);
  cp.add(chongzhi);
  tijiao.addActionListener(this);
  chongzhi.addActionListener(this);

 
}
 public static void main(String args[])
{
  new zh();
}
public void actionPerformed(ActionEvent e)
{
  if(e.getSource()==tijiao)
{
new Thread(){
public void run()
{
 String myname=inputname.getText();
 String myps=ps.getText();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection con=DriverManager.getConnection("jdbc:odbc:zhanghu");
  Statement s=con.createStatement();
PreparedStatement ps=con.prepareStatement("select * from zhanghu where name=?");
ps.setString(1,myname);
ResultSet rs=ps.executeQuery();
while(rs.next())
if(rs.getString("password").equals(myps))
JOptionPane.showMessageDialog(null,"密码正确!");
else
JOptionPane.showMessageDialog(null,"密码错误!");
 ps.close();
  s.close();
con.close();
}
catch(Exception ex){}
}
}.start();
}

 if(e.getSource()==chongzhi)
{
inputname.setText("");
ps.setText("");
}
}
}

//有点像你那的那个图,不过还是差一些,应当是,不行再说。
package com.TC;

import java.awt.Checkbox;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class MyFrame extends JFrame {
    // 标签
    JLabel label, label2, no_use;
    // 文本框
    JTextField usernametext;
    // 密码框
    JPasswordField password;
    // 按钮
    JPanel rem_not_show = new JPanel();//用于装记住密码与隐身的两个对象
    JPanel log_cancel = new JPanel();//用于装登陆和取消的两个对象
    JButton loginBut, exitBut,register;
    Checkbox rem_pwd = new     Checkbox("记住密码");
    Checkbox not_show = new Checkbox("隐身登陆");
/*这的布局是这种,可以达到效果*/
    GridBagLayout gblayout = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();

    public MyFrame() {
        setTitle("QQ登陆界面");
// 窗口的主容器
        final Container c = getContentPane();
        c.setLayout(gblayout); // 让容器采用空布局
        c.setBackground(Color.GREEN);
        
        constraints.weightx = 0;
        constraints.weighty = 0;
        constraints.gridx = 1;
        
        label = new JLabel("账号:",JLabel.CENTER);
        gblayout.setConstraints(label, constraints);
        c.add(label);
        constraints.gridx = 2;
        usernametext = new JTextField(10);
        gblayout.setConstraints(usernametext, constraints);
        c.add(usernametext);
        constraints.gridx = 3;
        register = new JButton("注册");
        gblayout.setConstraints(register, constraints);
        c.add(register);
        constraints.gridx = 1;
        constraints.gridy = 2;
        label2 = new JLabel("密码:",JLabel.CENTER);
        gblayout.setConstraints(label2, constraints);
        c.add(label2);
        constraints.gridx = 2;
        password = new JPasswordField(10);
        gblayout.setConstraints(password, constraints);
        c.add(password);
        constraints.gridx = 2;
        constraints.gridy = 3;
        rem_not_show.add(rem_pwd);
        rem_not_show.add(not_show);
        rem_not_show.setBackground(c.getBackground());
        gblayout.setConstraints(rem_not_show, constraints);
        c.add(rem_not_show);
        
         exitBut = new JButton();
         exitBut.setText("回滚");// 设置按钮值
         loginBut = new JButton("进入"); // 实例化组件
         log_cancel.add(loginBut);
         log_cancel.add(exitBut);
         constraints.gridx = 2;
        constraints.gridy = 4;
         gblayout.setConstraints(log_cancel, constraints);
         log_cancel.setBackground(c.getBackground());
        c.add(log_cancel);
 
        loginBut.setToolTipText("进入请点击该按钮!");
        // 给按钮注册监听器
        final myActionLis lis = new myActionLis();
        loginBut.addActionListener(lis);
        setSize(400, 300);
        setVisible(true);

上一个:java 怎样实现多线程下载的
下一个:KJava和Java有什么不同?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,