How to use : Java GUI Member Register Form and Validation Data |
How to use : Java GUI Member Register Form and Validation Data ตัวอย่างการเขียน Java GUI กับการออกแบบ Form สำหรับการ Input ข้อมูล User หรือสมาชิก โดยในตัวอย่างนี้จะยกตัวอย่างการรับข้อมูล และการ Validation ข้อมูล เช่น ตรวจสอบค่าว่าง ตรวจสอบการยืนยันรหัสผ่าน และ นำข้อมูลทั้งหมดจัดเก็บลงใน Database โดยในตัวอย่างนี้จะเลือกใช้ MySQL Database แต่สามารถ Apply ใช้ได้กับทุก ๆ Database เพียงแต่เปลี่ยน Connection String และ Class Name เท่านั้น
How to use : Java GUI Member Register Form and Validation Data
ในตัวอย่างนี้จะเลือกใช้ Database ของ MySQL แต่ในกรณีที่จะใช้ร่วมกับ Database อื่น ๆ ก็สามารถทำได้ง่าย ๆ เพียงแค่เปลี่ยน Connector และ Connection String เท่านั้น สามารถอ่านเพิ่มเติมได้ที่บทความนี้
Java Connect to MySQL Database (JDBC)
โครงสร้างของ MySQL และ Table

CREATE TABLE `member` (
`UserID` int(4) unsigned zerofill NOT NULL auto_increment,
`Username` varchar(20) NOT NULL,
`Password` varchar(20) NOT NULL,
`Email` varchar(150) NOT NULL,
`Name` varchar(250) NOT NULL,
PRIMARY KEY (`UserID`),
UNIQUE KEY `User` (`Username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- dump ตาราง `member`
--
INSERT INTO `member` VALUES (0001, 'weerachai', 'weerachai@1', '[email protected]', 'Weerachai Nukitram');
INSERT INTO `member` VALUES (0002, 'surachai', 'surachai@2', '[email protected]', 'Surachai Sirisart');
INSERT INTO `member` VALUES (0003, 'adisorn', 'adisorn@3', '[email protected]', 'Adisorn Bonsong');
คำสั่งของ SQL ที่สามารถนำไปรันบน Query เพื่อสร้าง Table และ Rows ได้ทันที
Example ตัวอย่างการสร้าง Form สำหรับ Register Data เพื่อบันทึกข้อมูลสมาชิก

MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import java.awt.Font;
import javax.swing.JPasswordField;
public class MyForm extends JFrame {
private JTextField txtUsername;
private JPasswordField txtPassword;
private JPasswordField txtConfirmPassword;
private JTextField txtName;
private JTextField txtEmail;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 454, 343);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Header Title
JLabel hRegister = new JLabel("Register Data");
hRegister.setFont(new Font("Tahoma", Font.BOLD, 13));
hRegister.setHorizontalAlignment(SwingConstants.CENTER);
hRegister.setBounds(121, 11, 132, 20);
getContentPane().add(hRegister);
// *** Header ***//
JLabel hUsername = new JLabel("Username :");
hUsername.setBounds(78, 52, 89, 14);
getContentPane().add(hUsername);
JLabel hPassword = new JLabel("Password :");
hPassword.setBounds(78, 84, 89, 14);
getContentPane().add(hPassword);
JLabel hConfirmPassword = new JLabel("Confirm Password :");
hConfirmPassword.setBounds(77, 113, 130, 14);
getContentPane().add(hConfirmPassword);
JLabel hName = new JLabel("Name :");
hName.setBounds(78, 148, 89, 14);
getContentPane().add(hName);
JLabel hEmail = new JLabel("Email :");
hEmail.setBounds(80, 176, 89, 14);
getContentPane().add(hEmail);
// CustomerID
txtUsername = new JTextField("");
txtUsername.setBounds(217, 47, 99, 20);
getContentPane().add(txtUsername);
// Password
txtPassword = new JPasswordField();
txtPassword.setBounds(217, 77, 102, 20);
getContentPane().add(txtPassword);
// Confirm Password
txtConfirmPassword = new JPasswordField();
txtConfirmPassword.setBounds(217, 112, 102, 20);
getContentPane().add(txtConfirmPassword);
// Name
txtName = new JTextField("");
txtName.setBounds(217, 140, 176, 20);
getContentPane().add(txtName);
// Email
txtEmail = new JTextField("");
txtEmail.setBounds(217, 172, 176, 20);
getContentPane().add(txtEmail);
// Save Button
JButton btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(RegisterData()) {
JOptionPane.showMessageDialog(null,
"Register Data Successfully");
}
}
});
btnSave.setBounds(161, 227, 89, 23);
getContentPane().add(btnSave);
}
private Boolean RegisterData()
{
String strUsername = txtUsername.getText();
String strPassword = new String(txtPassword.getPassword());
String strConfirmPassword = new String(txtConfirmPassword.getPassword());
String strName = txtName.getText();
String strEmail = txtEmail.getText();
if(strUsername.equals("")) // Username
{
JOptionPane.showMessageDialog(null,
"Please Input (Username)");
txtUsername.requestFocusInWindow();
return false;
}
if(strPassword.equals("")) // Password
{
JOptionPane.showMessageDialog(null,
"Please Input (Password)");
txtPassword.requestFocusInWindow();
return false;
}
if(strConfirmPassword.equals("")) // Confirm Password
{
JOptionPane.showMessageDialog(null,
"Please Input (Confirm Password)");
txtConfirmPassword.requestFocusInWindow();
return false;
}
if(!strPassword.equals(strConfirmPassword)) // Password math
{
JOptionPane.showMessageDialog(null,
"Please Input (Password Not Match!)");
txtPassword.requestFocusInWindow();
return false;
}
if(strName.equals("")) // Name
{
JOptionPane.showMessageDialog(null,
"Please Input (Name)");
txtName.requestFocusInWindow();
return false;
}
if(strEmail.equals("")) // Email
{
JOptionPane.showMessageDialog(null,
"Please Input (Email)");
txtEmail.requestFocusInWindow();
return false;
}
Connection connect = null;
Statement s = null;
Boolean status = false;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection(""
+ "jdbc:mysql://localhost/mydatabase"
+ "?user=root&password=root");
s = connect.createStatement();
// SQL Insert
String sql = "INSERT INTO member "
+ "(Username,Password,Email,Name) "
+ "VALUES ('" + strUsername + "','"
+ strPassword + "','"
+ strEmail + "'" + ",'"
+ strName + "') ";
s.execute(sql);
// Reset Text Fields
txtUsername.setText("");
txtPassword.setText("");
txtConfirmPassword.setText("");
txtName.setText("");
txtEmail.setText("");
status = true;
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
try {
if (s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
return status;
}
}
Output

แสดง Frame หรือ Form สำหรับกรอกข้อมูล

มีการตรวจสอบค่าว่าง

ตรวจสอบการยืนยันรหัสผ่าน

ตรวจสอบความถูกต้องของข้อมูล

หลังจากที่เพิ่มเรียบร้อยแล้วข้อมูลก็จะถูกจัดเก็บไว้ใน Database
กรณีที่ใช้ร่วมกับ Database อื่น ๆ สามารถดูวิธีการใช้ Connector และ Connection String ได้ที่นี่
Property & Method (Others Related) |
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
   |
|
|
Create/Update Date : |
2013-09-10 10:03:50 /
2017-03-27 21:52:16 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|