下图就是最终预览图.

0x001 环境

首先我们需要具备Java环境以及JFrame!

如果没有的朋友自行配置或者联系我!

0x002 界面布局

新建一个JFrame项目,来到代码窗口

首先我们得构建一个框架还有修改设置一下布局

JFrame frame=new JFrame("Connect Database");
	JPanel panel=new JPanel();
	FlowLayout flowLayout=new FlowLayout(0, 5, 5);

通过以上代码构建Frame和一个上下间距和左右间距都为5得流式布局,还有一个Pane。

既然要达到这个效果,那么我们还得设计这些标签框和输入框还有复选框按钮框等。

那么这些的代码这么写呢,下面请看我的

JFrame frame=new JFrame("Connect Database");
JPanel panel=new JPanel();
FlowLayout flowLayout=new FlowLayout(0, 5, 5);
JLabel label=new JLabel("数据库地址:");
JTextField textField=new JTextField(18);
textField.setText("例如localhost:3306");
JCheckBox checkBox=new JCheckBox("mysql");
JCheckBox checkBox2=new JCheckBox("oracle");
JCheckBox checkBox3=new JCheckBox("sqlserver");
JLabel label2=new JLabel("User:");
JTextField textField2=new JTextField(10);
textField2.setText("User name");
JLabel label3=new JLabel("Pass");
JTextField textField3=new JTextField(8);
textField3.setText("数据库名");
JPasswordField passwordField=new JPasswordField(18);
JButton button=new JButton("Connect");
JButton button2=new JButton("查看状态");
frame.setContentPane(panel);
panel.setLayout(flowLayout);
panel.add(label);
panel.add(textField);
panel.add(checkBox);
panel.add(checkBox2);
panel.add(checkBox3);
panel.add(textField3);
panel.add(label2);
panel.add(textField2);
panel.add(label3);
panel.add(passwordField);
panel.add(button);
panel.add(button2);
panel.setSize(600, 500);
frame.setSize(600, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setResizable(false);

通过如上代码插件个标签输入框按钮等。

并把创建的添加到主窗口(Pane)中,这样才会在我们的界面中显示出来,界面布局OK了

0x003 代码实现

我们程序的功能是当用户点击Connect按钮时进行数据库连接

所以我们就得为这个button添加事件

既然关于数据连接

那么我们就需要在头部加入如下代码

import java.sql.*;

那么,我们继续看如何实现呢?

第一个文本框放的是数据库地址,复选框决定数据库类型,第二个文本框是我们的数据库用户账号,最后的密码框是我们输入的数据库密码

那么,有了这些条件我们就可以开始了吧,首先得提取出里面内容把

关于文本框和密码框提取内容的方法是

文本框名.getText()

密码框.getText()

关于复现框我们需要进行判断用户是否选择,如何进行判断呢?使用如何代码即可

复选框名.isSelected()

如果选择返回True,否之返回False。

所以我们这个按钮的功能代码如下

if (checkBox.isSelected()) { String url="jdbc:"+checkBox.getText()+"://"+textField.getText()+"/"+textField3.getText();
				
			String os=checkBox.getText();
			try {
				
				connect(os, url, textField2.getText(),passwordField.getText());
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			}
			if (checkBox2.isSelected()) { String url="jdbc:"+checkBox2.getText()+"://"+textField.getText()+"/"+textField3.getText();
			String os=checkBox2.getText();
		try {
			String user=textField2.getText();
			String pass=passwordField.getText();
			connect(os, url, textField2.getText(), passwordField.getText());
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

相信各位都像是为什么这么多,这里connect可能会出现异常,所以需要用try{}catch{}来处理异常。

这四个参数都是我们连接数据库必须的参数,不懂的自己百度百度或者请教我

这里的connect是我写的一个方法,代码如下

public static void connect(String os,String data,String user,String pass) throws SQLException {
	String driverclass="com."+os+".jdbc.Driver";
	System.out.println(driverclass+","+data+","+user+","+pass);
	Connection connection=null;
	try {
		Class.forName(driverclass);
		connection=DriverManager.getConnection(data, user, pass);
		System.out.println(driverclass+","+data+","+user+","+pass);
		if(!connection.isClosed()){
			JOptionPane.showMessageDialog(null, "连接成功","提示", 1);
		}
		else JOptionPane.showMessageDialog(null, "连接失败","提示", 1);
	} catch (ClassNotFoundException e) {
		JOptionPane.showMessageDialog(null, "连接失败","提示", 1);
		e.printStackTrace();
	}
}

既然是按钮的事件代码,那么我们就需要把代码添加到按钮事件中

button.addActionListener(new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			if (checkBox.isSelected()) { String url="jdbc:"+checkBox.getText()+"://"+textField.getText()+"/"+textField3.getText();
				
			String os=checkBox.getText();
			try {
				
				connect(os, url, textField2.getText(),passwordField.getText());
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			}
			if (checkBox2.isSelected()) { String url="jdbc:"+checkBox2.getText()+"://"+textField.getText()+"/"+textField3.getText();
			String os=checkBox2.getText();
		try {
			String user=textField2.getText();
			String pass=passwordField.getText();
			connect(os, url, textField2.getText(), passwordField.getText());
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		}
			if (checkBox.isSelected()) { String url="jdbc:"+checkBox3.getText()+"://"+textField.getText()+"/"+textField3.getText();
			String os=checkBox3.getText();
		try {
			connect(os, url, textField2.getText(),passwordField.getText());
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		}
			
		}
	})

这是我们代码添加到按钮事件后的代码

整个程序差不多也就这样简单的实现了,至于如何浏览数据库表那些请关注本人博客

今后的文章会给大家慢慢讲解到。

0x004 总结

个人对Java swing的学习感受就是:其实这个并不难,重在实践!