添加背景图片函数:
public class lconlmage extends JPanel{
ImageIcon icon;
Image img;
public lconlmage()
{
icon=new ImageIcon("界面2.jpg" ); //图片
img=icon.getImage();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(img,0,0,null );
}
}
界面居中函数:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
//用到的包
public class Hq_wh {
public static void Hq_wh(JFrame f) {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
f.setLocation((size.width-f.getWidth())/2,(size.height-f.getHeight())/2);//获取界面大小,使其居中
}
}
主界面:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import shouye.CaiDan; //跳转用到的包
public class Denglu extends JFrame implements ActionListener{
JLabel zh,mm,sf; //声明账户、密码、省份;
JTextField zhk;
JPasswordField mmk;
JComboBox xllb;
//账户、密码、身份对应的输入框;
JButton jbLogin,jbCancel,exitItem; //登录、忘记秘密、退出按钮
Toolkit took = Toolkit.getDefaultToolkit();
public Denglu(){
this.setTitle("系统登录");
this.setSize(800,600);
Hq_wh.Hq_wh(this); //调用居中
this.setResizable(false); //控制窗口是否可以改变大小
zh = new JLabel("用户账号");
zhk = new JTextField(20); //账户框最大输入长度为20
mm = new JLabel("用户密码");
mmk= new JPasswordField(20);
sf= new JLabel("用户身份");
xllb= new JComboBox(new String[]{"管理员","学生","教师"});
jbLogin = new JButton("登录");
jbCancel = new JButton("忘记密码");
exitItem = new JButton("退出");
jbLogin.addActionListener(this);
jbCancel.addActionListener(this);
exitItem.addActionListener(this); //监听按钮
JTextField zhh = new JTextField(50);
zhh.setEditable(false); //这个窗口不能编辑
zhh.setBackground(Color.LIGHT_GRAY);
//以下数字部分设置每一个文本框、按钮对应位置;
zhh.setBounds(490, 260, 260, 150);
zh.setBounds(510, 280, 60, 20);
zhk.setBounds(570, 280, 120, 20);
mm.setBounds(510, 310, 60, 20);
mmk.setBounds(570, 310, 120, 20);
sf.setBounds(510, 340, 60, 20);
xllb.setBounds(570, 340, 120, 20);
jbLogin.setBounds(500, 370, 60, 20);
jbCancel.setBounds(570, 370, 100, 20);
exitItem.setBounds(680, 370, 60, 20);
this.add(zhk);
this.add(zh);
this.add(mm);
this.add(mmk);
this.add(sf);
this.add(xllb);
this.add(jbLogin);
this.add(jbCancel);
this.add(exitItem);
this.add(zhh);
add(new lconlmage()); //调用函数添加图片
//以上部分使用add()输出
setVisible(true);
setResizable(false);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
//判断是那个按钮
if(e.getSource() == jbLogin ) { //如果是登录按钮 进行下一步判断
//判断用户名与密码是否正确
if( (zhk.getText().equals("123") ) && (mmk.getText().equals("123") ) )
{
setVisible(false); //关闭当前窗口;
new CaiDan(); //跳转至成功登录界面CaiDan();
}
else
{
JOptionPane.showMessageDialog(null, "用户名或者秘密错误!");
}
}
if(e.getSource()==jbCancel) { //如果是“忘记密码”按钮,(暂未设置效果)
return;
}
if(e.getSource()==exitItem) { //如果是退出按钮 ,就关闭
System.exit(0);
}
}
public static void main(String[] args) {
new Denglu(); //实例化登录窗口
}
}
登录成功界面
代码(略),相当于只是个看得见图片的窗口
运行截图效果:
输入错误密码截图:
正确登录截图:
跳转成功!!!