package com.bvtc.mdi.window;import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;import com.bvtc.mdi.dao.LoginDao;
/**
 * 
 * @author wangjing
 * 该类是登录窗口
 *
 */
public class LoginWindow extends JDialog {

/**
 * 
 * @param frame 指定Frame
 * @param title 指定标题
 * @param model 是否model
 */
public LoginWindow(Frame frame, String title, boolean model) {
super(frame,title,model);
//初始化父窗口的引用
iw = (IndexWindow) frame;
//调用登录窗口的showMethod方法显示登录窗口
showMethod();
}

//创建父窗口的引用
IndexWindow iw = null;
//创建操作数据库的Dao类的对象的引用
LoginDao loginDao = null;
//拿到登陆窗口的组件容器
Container container = this.getContentPane(); 

//定义server、database、username、pssword文本显示区域
JLabel jlServer = null;
JLabel jlDataBase= null;
JLabel jlUserName = null;
JLabel jlPassword = null;
//定义server、database、username、pssword输入区域
JTextField jtfServer = null; 
JTextField jtfDataBase = null; 
JTextField jtfUserName = null; 
JTextField jtfPassword = null; 
//定义确定按钮和退出按钮
JButton jbSubmit = null;
JButton jbCancel = null;


/**
 * 该方法是显示登录窗口的方法
 */
public void showMethod() {
//设置窗口大小
this.setSize(300, 500);
//调用该方法初始化登陆窗口中的控件并添加到登陆窗口中
buildControl();
//给确定按钮和取消按钮绑定事件
event();
//调用该方法将窗口显示到屏幕中间
showInMiddle();
//将窗口模式化
this.setModal(true);
this.setVisible(true);

}
/**
 * 该方法是处理确定按钮和取消按钮的事件类
 */
private void event() {
//处理取消按钮事件
jbCancel.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
//调用本方法隐藏窗口
hideWindow();
}
});
//处理确定按钮事件
jbSubmit.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
//定义用来存放server、datsbase、username、pssword值的变量
String server = null;
String database = null;
String userName = null;
String password = null;
//给server、database、username、pssword变量赋值
server = jtfServer.getText();
database = jtfDataBase.getText();
userName = jtfUserName.getText();
password = jtfPassword.getText();
//初始化loginDao对象
loginDao = new LoginDao(server, database, userName, password);
//如果可以连接上数据库,隐藏登陆窗口
if(loginDao.validate()!=false) {
hideWindow();
}else {//如果连接不上,弹出报错窗口

}
iw.createTree(database);
}
});
}
/**
 * 该方法用于隐藏窗口
 */
private void hideWindow() {
this.setVisible(false);
}
/**
 * 该方法用于构建登陆窗口中的控件
 * 将控件初始化并添加到登陆窗口中
 */
private void buildControl() {
//设置窗口的布局管理器为null
this.setLayout(null);
//初始化确定按钮和取消按钮
jbSubmit = new JButton("确定");
jbCancel = new JButton("取消");
//初始化server、database、username、pssword文本显示区域
jlServer = new JLabel("server");
jlDataBase = new JLabel("database");
jlUserName = new JLabel("username");
jlPassword = new JLabel("password");
//初始化server、database、username、pssword输入区域
jtfServer = new JTextField();
jtfDataBase = new JTextField();
jtfUserName = new JTextField();
jtfPassword = new JTextField();
//设置确定按钮和取消按钮的位置和大小
jbSubmit.setBounds(130, 400, 60, 30);
//设置按钮的颜色
jbSubmit.setBackground(new Color(1,169,219));
//要想按钮的颜色显示出来必须将不透明设置为true
jbSubmit.setOpaque(true);
jbCancel.setBounds(200, 400, 60, 30);
jbCancel.setBackground(new Color(1,169,219));
jbCancel.setOpaque(true);
//设置server、database、username、pssword文本显示区域的位置和大小
jlServer.setBounds(40, 40, 70, 30);
jlDataBase.setBounds(40, 130, 70, 30);
jlUserName.setBounds(40, 220, 70, 30);
jlPassword.setBounds(40, 310, 70, 30);
//设置server、database、username、pssword输入区域的位置和大小
jtfServer.setBounds(130, 40, 120, 30);
jtfDataBase.setBounds(130, 130, 120, 30);
jtfUserName.setBounds(130, 220, 120, 30);
jtfPassword.setBounds(130, 310, 120, 30);
//将控件添加到登陆窗口中
container.add(jbSubmit);
container.add(jbCancel);
container.add(jlServer);
container.add(jlDataBase);
container.add(jlUserName);
container.add(jlPassword);
container.add(jtfServer);
container.add(jtfDataBase);
container.add(jtfUserName);
container.add(jtfPassword);
}
/**
 * 该方法是将登录窗口显示到屏幕中间的方法
 */
private void showInMiddle() {
//获取屏幕大小
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//获取JDialog的大小
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
}
}
package com.bvtc.test;import com.bvtc.mdi.window.IndexWindow;
import com.bvtc.mdi.window.LoginWindow;public class Test { /**
 * @param args
 */
public static void main(String[] args) {

//创建主窗口的引用
IndexWindow iw = new IndexWindow();
// 创建并初始化登录窗口
LoginWindow loginWindow = new LoginWindow(iw,"Project Configuration",true);
iw.setLoginWindow(loginWindow);
}

}
package com.bvtc.mdi.dao;import com.bvtc.mdi.db.DB;
/**
 * 
 * @author wangjing
 * 该类是登陆窗口操作数据库的dao类
 */
public class LoginDao {
// 定义用来接收server、database、username、pssword值的变量
String server = null;
String database = null;
String userName = null;
String password = null;

//创建数据库操作类对象
DB db = new DB(); /**
 * 
 * @param server
 *            服务器
 * @param database
 *            数据库
 * @param userName
 *            用户名
 * @param password
 *            密码
 */
public LoginDao(String server, String database, String userName, String password) {
super();
this.server = server;
this.database = database;
this.userName = userName;
this.password = password;
}

public boolean validate() {
return db.connect(server, database, userName, password);
}}
package com.bvtc.mdi.db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 * 
 * @author wangjing
 * 该类是用于操作数据库的类
 */
public class DB {
Connection conn = null;
/**
 * 
 * @param server
 * @param database
 * @param userName
 * @param password
 * 该方法是连接数据库的方法
 */
public boolean connect(String server, String database, String userName,
String password) {
//拼接url
String url = "jdbc:mysql://"+server+":3306/"+database;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, userName, password);
return true;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return false;
}
}此外还有一个mysql连接JDBC的jar包没上传
求大神们指点啊