By GokiSoft.com|
20:14 17/04/2023|
Java Advanced
[Source Code] Quản lý sinh viên + XML + JSON + MySQL bằng Java - C2206L
Quản lý sinh viên + XML + JSON + MySQL bằng Java
#BaseDAO.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author teacher
*/
public abstract class BaseDAO {
static Connection conn = null;
static PreparedStatement statement = null;
static void open() {
try {
//B1. Ket noi CSDL
conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/c2108l", "root", "");
} catch (SQLException ex) {
Logger.getLogger(BaseDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
static void close() {
//B3. Dong ket noi
if(statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(BaseDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(BaseDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
statement = null;
conn = null;
}
// public abstract List<T> select();
// public abstract void insert(T t);
// public abstract void update(T t);
// public abstract void delete(K key);
}
#FileUtil.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author teacher
*/
public class FileUtil {
public static void saveFile(String filename, String content) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filename);
byte[] data = content.getBytes("utf8");
fos.write(data);
} catch (FileNotFoundException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public static String readFile(String filename) {
StringBuilder builder = new StringBuilder();
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
int code;
while((code = fis.read()) != -1) {
builder.append((char) code);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fis != null) {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return builder.toString();
}
public static String readFile(File file) {
StringBuilder builder = new StringBuilder();
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
int code;
while((code = fis.read()) != -1) {
builder.append((char) code);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fis != null) {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(FileUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return builder.toString();
}
}
#Main.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import java.util.List;
import java.util.Scanner;
/**
*
* @author teacher
*/
public class Main {
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
// Students std = new Students("Xin Chao", "abc@gmail.com", "2023-02-12", "2023-02-20");
// StudentsDAO.insert(std);
//
// List<Students> dataList = StudentsDAO.select();
//
// for (Students students : dataList) {
// System.out.println(students);
// }
int choose;
do {
showMenu();
choose = Integer.parseInt(scan.nextLine());
switch(choose) {
case 1:
display();
break;
case 2:
input();
break;
case 3:
edit();
break;
case 4:
delete();
break;
case 5:
search();
break;
case 6:
sort();
break;
case 7:
System.out.println("Thoat!!!");
break;
default:
System.out.println("Nhap sai!!!");
break;
}
} while (choose != 7);
}
static void showMenu() {
System.out.println("1. Hien thi danh sach");
System.out.println("2. Them sinh vien moi");
System.out.println("3. Sua");
System.out.println("4. Xoa");
System.out.println("5. Tim kiem theo ten");
System.out.println("6. Sap xep");
System.out.println("7. Thoat");
System.out.println("Chon: ");
}
private static void display() {
List<Students> dataList = StudentsDAO.select();
System.out.println("Danh sach sinh vien: ");
for (Students students : dataList) {
System.out.println(students);
}
}
private static void input() {
Students std = new Students();
std.input();
StudentsDAO.insert(std);
}
private static void edit() {
System.out.println("Nhap ID can sua: ");
int id = Integer.parseInt(scan.nextLine());
Students std = StudentsDAO.findById(id);
std.input();
StudentsDAO.update(std);
}
private static void delete() {
System.out.println("Nhap ID can xoa: ");
int id = Integer.parseInt(scan.nextLine());
StudentsDAO.delete(id);
System.out.println("Xoa thanh cong!!!");
}
private static void search() {
System.out.println("Nhap ten can tim kiem: ");
String search = scan.nextLine();
List<Students> dataList = StudentsDAO.searchByName(search);
System.out.println("Ket quan tim thay: ");
for (Students students : dataList) {
System.out.println(students);
}
}
private static void sort() {
List<Students> dataList = StudentsDAO.sortByName();
for (Students students : dataList) {
System.out.println(students);
}
}
}
#StudentFrame.form
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
<Property name="title" type="java.lang.String" value="QUAN LY SINH VIEN"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel1" max="32767" attributes="0"/>
<Component id="jScrollPane1" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="screenBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jPanel1" max="32767" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="183" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="screenBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="jPanel1">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="NHAP THONG TIN SINH VIEN"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel4" min="-2" max="-2" attributes="0"/>
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="55" max="-2" attributes="0"/>
<Component id="fullnameTxt" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="52" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="genderCb" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="saveBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="deleteBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
<Component id="searchBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="31" max="-2" attributes="0"/>
<Component id="sortBtn" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="emailTxt" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="importXMLBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="importJsonBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="exportXMLBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="exportJsonBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
<Component id="phoneNumberTxt" alignment="1" max="32767" attributes="0"/>
<Component id="ageTxt" alignment="1" max="32767" attributes="0"/>
</Group>
</Group>
</Group>
</Group>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="fullnameTxt" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="emailTxt" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="phoneNumberTxt" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel4" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="ageTxt" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="genderCb" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="15" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="saveBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="deleteBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="searchBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="sortBtn" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="15" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="importXMLBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="exportXMLBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="importJsonBtn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="exportJsonBtn" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="text" type="java.lang.String" value="Ho Ten: "/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="fullnameTxt">
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="text" type="java.lang.String" value="Email:"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="emailTxt">
</Component>
<Component class="javax.swing.JButton" name="saveBtn">
<Properties>
<Property name="text" type="java.lang.String" value="LUU"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="saveBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="deleteBtn">
<Properties>
<Property name="text" type="java.lang.String" value="XOA"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="searchBtn">
<Properties>
<Property name="text" type="java.lang.String" value="TIM KIEM"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="searchBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="sortBtn">
<Properties>
<Property name="text" type="java.lang.String" value="SAP XEP"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="sortBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="importXMLBtn">
<Properties>
<Property name="text" type="java.lang.String" value="IMPORT XML"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="importXMLBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="exportXMLBtn">
<Properties>
<Property name="text" type="java.lang.String" value="EXPORT XML"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exportXMLBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="importJsonBtn">
<Properties>
<Property name="text" type="java.lang.String" value="IMPORT JSON"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="importJsonBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="exportJsonBtn">
<Properties>
<Property name="text" type="java.lang.String" value="EXPORT JSON"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exportJsonBtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JTextField" name="phoneNumberTxt">
</Component>
<Component class="javax.swing.JLabel" name="jLabel3">
<Properties>
<Property name="text" type="java.lang.String" value="SDT:"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="ageTxt">
</Component>
<Component class="javax.swing.JLabel" name="jLabel4">
<Properties>
<Property name="text" type="java.lang.String" value="Tuoi:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel5">
<Properties>
<Property name="text" type="java.lang.String" value="Gioi Tinh:"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="genderCb">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="4">
<StringItem index="0" value="-- CHON GIOI TINH --"/>
<StringItem index="1" value="NAM"/>
<StringItem index="2" value="NU"/>
<StringItem index="3" value="KHAC"/>
</StringArray>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
</AuxValues>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JTable" name="studentTable">
<Properties>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
<Table columnCount="7" rowCount="0">
<Column editable="false" title="STT" type="java.lang.Object"/>
<Column editable="false" title="Ho Ten" type="java.lang.Object"/>
<Column editable="false" title="Gioi Tinh" type="java.lang.Object"/>
<Column editable="false" title="Tuoi" type="java.lang.Object"/>
<Column editable="false" title="SDT" type="java.lang.Object"/>
<Column editable="false" title="Email" type="java.lang.Object"/>
<Column editable="false" title="Ngay Tao" type="java.lang.Object"/>
</Table>
</Property>
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
<TableColumnModel selectionModel="0">
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
</TableColumnModel>
</Property>
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JButton" name="screenBtn">
<Properties>
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="99" green="ff" red="ff" type="rgb"/>
</Property>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="66" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" value="HIEN THI MAN HINH MOI"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="screenBtnActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Form>
#StudentFrame.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import com.gokisoft.xml.lesson03.Student;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;
/**
*
* @author teacher
*/
public class StudentFrame extends javax.swing.JFrame {
DefaultTableModel tableModel;
List<Students> dataList = new ArrayList<>();
int currentIndex = -1;
/**
* Creates new form StudentFrame
*/
public StudentFrame() {
initComponents();
tableModel = (DefaultTableModel) studentTable.getModel();
showNewData();
studentTable.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
currentIndex = studentTable.getSelectedRow();
fullnameTxt.setText(dataList.get(currentIndex).getFullname());
emailTxt.setText(dataList.get(currentIndex).getEmail());
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
}
private void showNewData() {
dataList = StudentsDAO.select();
showTable();
}
private void showTable() {
tableModel.setRowCount(0);
for (Students students : dataList) {
tableModel.addRow(new Object[]{
tableModel.getRowCount() + 1,
students.getFullname(),
students.getGender(),
students.getAge(),
students.getPhoneNumber(),
students.getEmail(),
students.getUpdatedAt()
});
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
fullnameTxt = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
emailTxt = new javax.swing.JTextField();
saveBtn = new javax.swing.JButton();
deleteBtn = new javax.swing.JButton();
searchBtn = new javax.swing.JButton();
sortBtn = new javax.swing.JButton();
importXMLBtn = new javax.swing.JButton();
exportXMLBtn = new javax.swing.JButton();
importJsonBtn = new javax.swing.JButton();
exportJsonBtn = new javax.swing.JButton();
phoneNumberTxt = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
ageTxt = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
genderCb = new javax.swing.JComboBox<>();
jScrollPane1 = new javax.swing.JScrollPane();
studentTable = new javax.swing.JTable();
screenBtn = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("QUAN LY SINH VIEN");
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("NHAP THONG TIN SINH VIEN"));
jLabel1.setText("Ho Ten: ");
jLabel2.setText("Email:");
saveBtn.setText("LUU");
saveBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveBtnActionPerformed(evt);
}
});
deleteBtn.setText("XOA");
deleteBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteBtnActionPerformed(evt);
}
});
searchBtn.setText("TIM KIEM");
searchBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
searchBtnActionPerformed(evt);
}
});
sortBtn.setText("SAP XEP");
sortBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sortBtnActionPerformed(evt);
}
});
importXMLBtn.setText("IMPORT XML");
importXMLBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
importXMLBtnActionPerformed(evt);
}
});
exportXMLBtn.setText("EXPORT XML");
exportXMLBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportXMLBtnActionPerformed(evt);
}
});
importJsonBtn.setText("IMPORT JSON");
importJsonBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
importJsonBtnActionPerformed(evt);
}
});
exportJsonBtn.setText("EXPORT JSON");
exportJsonBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportJsonBtnActionPerformed(evt);
}
});
jLabel3.setText("SDT:");
jLabel4.setText("Tuoi:");
jLabel5.setText("Gioi Tinh:");
genderCb.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "-- CHON GIOI TINH --", "NAM", "NU", "KHAC" }));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel3)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(55, 55, 55)
.addComponent(fullnameTxt))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel5))
.addGap(52, 52, 52)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(genderCb, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(saveBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(deleteBtn)
.addGap(28, 28, 28)
.addComponent(searchBtn)
.addGap(31, 31, 31)
.addComponent(sortBtn))
.addComponent(emailTxt)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(importXMLBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(importJsonBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(exportXMLBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(exportJsonBtn)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(phoneNumberTxt, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(ageTxt, javax.swing.GroupLayout.Alignment.TRAILING))))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(fullnameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(emailTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(phoneNumberTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(ageTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(genderCb, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(saveBtn)
.addComponent(deleteBtn)
.addComponent(searchBtn)
.addComponent(sortBtn))
.addGap(15, 15, 15)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(importXMLBtn)
.addComponent(exportXMLBtn)
.addComponent(importJsonBtn)
.addComponent(exportJsonBtn))
.addContainerGap())
);
studentTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"STT", "Ho Ten", "Gioi Tinh", "Tuoi", "SDT", "Email", "Ngay Tao"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(studentTable);
screenBtn.setBackground(new java.awt.Color(255, 255, 153));
screenBtn.setForeground(new java.awt.Color(255, 0, 102));
screenBtn.setText("HIEN THI MAN HINH MOI");
screenBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
screenBtnActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addComponent(screenBtn)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(screenBtn)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void saveBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveBtnActionPerformed
// TODO add your handling code here:
String fullname = fullnameTxt.getText();
String email = emailTxt.getText();
int age = Integer.parseInt(ageTxt.getText());
String gender = genderCb.getSelectedItem().toString();
String phoneNumber = phoneNumberTxt.getText();
if (currentIndex >= 0) {
dataList.get(currentIndex).setFullname(fullname);
dataList.get(currentIndex).setEmail(email);
dataList.get(currentIndex).setAge(age);
dataList.get(currentIndex).setGender(gender);
dataList.get(currentIndex).setPhoneNumber(phoneNumber);
StudentsDAO.update(dataList.get(currentIndex));
currentIndex = -1;
showTable();
} else {
Students std = new Students();
std.setFullname(fullname);
std.setEmail(email);
std.setAge(age);
std.setPhoneNumber(phoneNumber);
std.setGender(gender);
std.setCreatedAt("2023-03-22");
std.setUpdatedAt("2023-03-22");
StudentsDAO.insert(std);
showNewData();
}
fullnameTxt.setText("");
emailTxt.setText("");
ageTxt.setText("");
phoneNumberTxt.setText("");
genderCb.setSelectedIndex(0);
}//GEN-LAST:event_saveBtnActionPerformed
private void deleteBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteBtnActionPerformed
// TODO add your handling code here:
int index = studentTable.getSelectedRow();
if (index < 0) {
JOptionPane.showMessageDialog(rootPane, "Chua co ban ghi nao dc chon");
return;
}
int option = JOptionPane.showConfirmDialog(rootPane, "BAN CHAC CHAN MUON XOA BAN GHI NAY KHONG");
if (option != 0) {
return;
}
Students std = dataList.get(index);
StudentsDAO.delete(std.getId());
showNewData();
currentIndex = -1;
}//GEN-LAST:event_deleteBtnActionPerformed
private void searchBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_searchBtnActionPerformed
// TODO add your handling code here:
String search = JOptionPane.showInputDialog("Nhap ten khach hang can tim kiem");
dataList = StudentsDAO.searchByName(search);
showTable();
}//GEN-LAST:event_searchBtnActionPerformed
private void sortBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sortBtnActionPerformed
// TODO add your handling code here:
dataList = StudentsDAO.sortByName();
showTable();
}//GEN-LAST:event_sortBtnActionPerformed
TestFrame testFrame = null;
private void screenBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_screenBtnActionPerformed
// TODO add your handling code here:
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
if (testFrame == null) {
testFrame = new TestFrame();
}
if (testFrame.isVisible()) {
testFrame.setVisible(false);
} else {
testFrame.setVisible(true);
}
}
});
}//GEN-LAST:event_screenBtnActionPerformed
private void importXMLBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importXMLBtnActionPerformed
// TODO add your handling code here:
// TODO add your handling code here:
JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Choose XML only", "xml");
fileChooser.addChoosableFileFilter(filter);
int option = fileChooser.showOpenDialog(this);
if (option == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
String xmlData = FileUtil.readFile(file);
System.out.println(xmlData);
//Bai hoc truoc ---
} else {
System.out.println("Cancel");
}
System.out.println("===== IMPORT DATA SUCCESS =====");
showNewData();
showTable();
}//GEN-LAST:event_importXMLBtnActionPerformed
private void exportXMLBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportXMLBtnActionPerformed
// TODO add your handling code here:
String xmlData = "";
for (Students students : dataList) {
xmlData += students.getXMLItem();
}
xmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "\n"
+ "<student-list>\n"
+ xmlData
+ "</student-list>";
FileUtil.saveFile("export-student.xml", xmlData);
System.out.println("===== EXPORT XML DATA SUCCESS =====");
}//GEN-LAST:event_exportXMLBtnActionPerformed
private void importJsonBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importJsonBtnActionPerformed
// TODO add your handling code here:
JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Choose JSON only", "json");
fileChooser.addChoosableFileFilter(filter);
int option = fileChooser.showOpenDialog(this);
if (option == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
String json = FileUtil.readFile(file);
java.lang.reflect.Type listType = new TypeToken<List<Students>>() {}.getType();
dataList = new Gson().fromJson(json, listType);
for (Students students : dataList) {
//System.out.println(students);
StudentsDAO.importData(students);
}
} else {
System.out.println("Cancel");
}
System.out.println("===== IMPORT DATA SUCCESS =====");
showNewData();
showTable();
}//GEN-LAST:event_importJsonBtnActionPerformed
private void exportJsonBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportJsonBtnActionPerformed
// TODO add your handling code here:
Gson gson = new Gson();
String json = gson.toJson(dataList);
System.out.println(json);
FileUtil.saveFile("export-student.json", json);
System.out.println("===== EXPORT JSON DATA SUCCESS =====");
}//GEN-LAST:event_exportJsonBtnActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(StudentFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(StudentFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(StudentFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(StudentFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new StudentFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField ageTxt;
private javax.swing.JButton deleteBtn;
private javax.swing.JTextField emailTxt;
private javax.swing.JButton exportJsonBtn;
private javax.swing.JButton exportXMLBtn;
private javax.swing.JTextField fullnameTxt;
private javax.swing.JComboBox<String> genderCb;
private javax.swing.JButton importJsonBtn;
private javax.swing.JButton importXMLBtn;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField phoneNumberTxt;
private javax.swing.JButton saveBtn;
private javax.swing.JButton screenBtn;
private javax.swing.JButton searchBtn;
private javax.swing.JButton sortBtn;
private javax.swing.JTable studentTable;
// End of variables declaration//GEN-END:variables
}
#Students.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import java.util.Scanner;
/**
*
* @author teacher
*/
public class Students {
int id;
String fullname;
String email;
int age;
String gender;
String phoneNumber;
String createdAt;
String updatedAt;
public Students() {
}
public Students(int id, String fullname, String email, int age,
String gender, String phoneNumber,
String createdAt, String updatedAt) {
this.id = id;
this.fullname = fullname;
this.email = email;
this.age = age;
this.gender = gender;
this.phoneNumber = phoneNumber;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
}
public Students(String fullname, String email, int age, String gender,
String phoneNumber, String createdAt, String updatedAt) {
this.fullname = fullname;
this.email = email;
this.age = age;
this.gender = gender;
this.phoneNumber = phoneNumber;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
}
public void input() {
Scanner scan = new Scanner(System.in);
System.out.println("Nhap ten: ");
fullname = scan.nextLine();
System.out.println("Nhap email: ");
email = scan.nextLine();
createdAt = "2023-02-12";
updatedAt = "2023-02-20";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCreatedAt() {
return createdAt;
}
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
public String getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(String updatedAt) {
this.updatedAt = updatedAt;
}
@Override
public String toString() {
return "id=" + id + ", fullname=" + fullname + ", email=" +
email + ", age=" + age + ", gender=" + gender + ", phoneNumber=" +
phoneNumber + ", createdAt=" + createdAt + ", updatedAt=" + updatedAt;
}
public String getXMLItem() {
return "<student>\n" +
" <fullname><![CDATA["+fullname+"]]></fullname>\n" +
" <email><![CDATA["+email+"]]></email>\n" +
" <gender><![CDATA["+gender+"]]></gender>\n" +
" <phone-number><![CDATA["+phoneNumber+"]]></phone-number>\n" +
" <age><![CDATA["+age+"]]></age>\n" +
" <created-at><![CDATA["+createdAt+"]]></created-at>\n" +
" <updated-at><![CDATA["+updatedAt+"]]></updated-at>\n" +
"</student>";
}
}
#StudentsDAO.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*CREATE TABLE `students` (
`id` int(11) NOT NULL,
`fullname` varchar(50) NOT NULL,
`email` varchar(150) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`gender` varchar(12) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`phone_number` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
* @author teacher
*/
public class StudentsDAO extends BaseDAO {
public static List<Students> searchByName(String name) {
List<Students> dataList = new ArrayList<>();
open();
try {
//B2. Query du lieu ra
String sql = "select * from students where fullname like ?";
statement = conn.prepareStatement(sql);
statement.setString(1, "%" + name + "%");
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
Students std = new Students(
resultSet.getInt("id"),
resultSet.getString("fullname"),
resultSet.getString("email"),
resultSet.getInt("age"),
resultSet.getString("gender"),
resultSet.getString("phone_number"),
resultSet.getString("created_at"),
resultSet.getString("updated_at")
);
dataList.add(std);
}
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return dataList;
}
public static List<Students> sortByName() {
List<Students> dataList = new ArrayList<>();
open();
try {
//B2. Query du lieu ra
String sql = "select * from students order by fullname asc";
statement = conn.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
Students std = new Students(
resultSet.getInt("id"),
resultSet.getString("fullname"),
resultSet.getString("email"),
resultSet.getInt("age"),
resultSet.getString("gender"),
resultSet.getString("phone_number"),
resultSet.getString("created_at"),
resultSet.getString("updated_at")
);
dataList.add(std);
}
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return dataList;
}
public static List<Students> select() {
List<Students> dataList = new ArrayList<>();
open();
try {
//B2. Query du lieu ra
String sql = "select * from students";
statement = conn.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
Students std = new Students(
resultSet.getInt("id"),
resultSet.getString("fullname"),
resultSet.getString("email"),
resultSet.getInt("age"),
resultSet.getString("gender"),
resultSet.getString("phone_number"),
resultSet.getString("created_at"),
resultSet.getString("updated_at")
);
dataList.add(std);
}
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return dataList;
}
public static void insert(Students std) {
open();
try {
//B2. Query du lieu ra
String sql = "insert into students(fullname, email, created_at, updated_at, age, gender, phone_number) values (?, ?, ?, ?, ?, ?, ?)";
statement = conn.prepareStatement(sql);
statement.setString(1, std.getFullname());
statement.setString(2, std.getEmail());
statement.setString(3, std.getCreatedAt());
statement.setString(4, std.getUpdatedAt());
statement.setInt(5, std.getAge());
statement.setString(6, std.getGender());
statement.setString(7, std.getPhoneNumber());
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void update(Students std) {
open();
try {
//B2. Query du lieu ra
String sql = "update students set fullname = ?, email = ?, updated_at = ?, age = ?, gender = ?, phone_number = ? where id = ?";
statement = conn.prepareStatement(sql);
statement.setString(1, std.getFullname());
statement.setString(2, std.getEmail());
statement.setString(3, std.getUpdatedAt());
statement.setInt(4, std.getAge());
statement.setString(5, std.getGender());
statement.setString(6, std.getPhoneNumber());
statement.setInt(7, std.getId());
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void updateByEmail(Students std) {
System.out.println("update import ---");
open();
try {
//B2. Query du lieu ra
String sql = "update students set fullname = ?, updated_at = ?, age = ?, gender = ?, phone_number = ? where email = ?";
statement = conn.prepareStatement(sql);
statement.setString(1, std.getFullname());
statement.setString(2, std.getUpdatedAt());
statement.setInt(3, std.getAge());
statement.setString(4, std.getGender());
statement.setString(5, std.getPhoneNumber());
statement.setString(6, std.getEmail());
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void delete(int id) {
open();
try {
//B2. Query du lieu ra
String sql = "delete from students where id = ?";
statement = conn.prepareStatement(sql);
statement.setInt(1, id);
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static Students findById(int id) {
Students std = null;
open();
try {
//B2. Query du lieu ra
String sql = "select * from students where id = ?";
statement = conn.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
std = new Students(
resultSet.getInt("id"),
resultSet.getString("fullname"),
resultSet.getString("email"),
resultSet.getInt("age"),
resultSet.getString("gender"),
resultSet.getString("phone_number"),
resultSet.getString("created_at"),
resultSet.getString("updated_at")
);
break;
}
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return std;
}
public static void importData(Students std) {
Students checkItem = findByEmail(std.getEmail());
if(checkItem != null) {
//update
updateByEmail(std);
} else {
//insert
insert(std);
}
}
public static Students findByEmail(String email) {
Students std = null;
open();
try {
//B2. Query du lieu ra
String sql = "select * from students where email = ?";
statement = conn.prepareStatement(sql);
statement.setString(1, email);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
std = new Students(
resultSet.getInt("id"),
resultSet.getString("fullname"),
resultSet.getString("email"),
resultSet.getInt("age"),
resultSet.getString("gender"),
resultSet.getString("phone_number"),
resultSet.getString("created_at"),
resultSet.getString("updated_at")
);
break;
}
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return std;
}
}
#TestFrame.form
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<NonVisualComponents>
<Menu class="javax.swing.JMenuBar" name="jMenuBar1">
<SubComponents>
<Menu class="javax.swing.JMenu" name="jMenu1">
<Properties>
<Property name="text" type="java.lang.String" value="File"/>
</Properties>
<SubComponents>
<Menu class="javax.swing.JMenu" name="jMenu3">
<Properties>
<Property name="text" type="java.lang.String" value="jMenu3"/>
</Properties>
<SubComponents>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem2">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem2"/>
</Properties>
</MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem3">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem3"/>
</Properties>
</MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem5">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem5"/>
</Properties>
</MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem4">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem4"/>
</Properties>
</MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem6">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem6"/>
</Properties>
</MenuItem>
</SubComponents>
</Menu>
<MenuItem class="javax.swing.JMenuItem" name="jMenuItem1">
<Properties>
<Property name="text" type="java.lang.String" value="jMenuItem1"/>
</Properties>
</MenuItem>
</SubComponents>
</Menu>
<Menu class="javax.swing.JMenu" name="jMenu2">
<Properties>
<Property name="text" type="java.lang.String" value="Edit"/>
</Properties>
</Menu>
</SubComponents>
</Menu>
</NonVisualComponents>
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
<Property name="title" type="java.lang.String" value="TIM HIEU JAVA SWING"/>
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="99" green="ff" red="99" type="rgb"/>
</Property>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="66" green="66" red="ff" type="rgb"/>
</Property>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="66" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" attributes="0">
<Component id="test01Btn" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="70" max="-2" attributes="0"/>
<Component id="test02Btn" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="test03Btn" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="txtFullname" max="32767" attributes="0"/>
<Component id="txtEmail" max="32767" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane1" pref="465" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtFullname" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtEmail" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="41" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="test01Btn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="test02Btn" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="test03Btn" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="220" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="text" type="java.lang.String" value="Ho Ten: "/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="txtFullname">
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="text" type="java.lang.String" value="Email:"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="txtEmail">
</Component>
<Component class="javax.swing.JButton" name="test01Btn">
<Properties>
<Property name="text" type="java.lang.String" value="Test 01"/>
<Property name="actionCommand" type="java.lang.String" value="Test 01"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="test01BtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="test02Btn">
<Properties>
<Property name="text" type="java.lang.String" value="Test 02"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="test02BtnActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="test03Btn">
<Properties>
<Property name="text" type="java.lang.String" value="Test 03"/>
<Property name="toolTipText" type="java.lang.String" value=""/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="test03BtnActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JTable" name="tblTest">
<Properties>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
<Table columnCount="3" rowCount="0">
<Column editable="false" title="STT" type="java.lang.Object"/>
<Column editable="false" title="Ho Ten" type="java.lang.Object"/>
<Column editable="false" title="Email" type="java.lang.Object"/>
</Table>
</Property>
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
<TableColumnModel selectionModel="0">
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
<Title/>
<Editor/>
<Renderer/>
</Column>
</TableColumnModel>
</Property>
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Form>
#TestFrame.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.lesson06;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author teacher
*/
public class TestFrame extends javax.swing.JFrame {
DefaultTableModel tableModel;
/**
* Creates new form TestFrame
*/
public TestFrame() {
initComponents();
tableModel = (DefaultTableModel) tblTest.getModel();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
txtFullname = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtEmail = new javax.swing.JTextField();
test01Btn = new javax.swing.JButton();
test02Btn = new javax.swing.JButton();
test03Btn = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblTest = new javax.swing.JTable();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu3 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem5 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jMenuItem6 = new javax.swing.JMenuItem();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("TIM HIEU JAVA SWING");
setBackground(new java.awt.Color(153, 255, 153));
setForeground(new java.awt.Color(255, 102, 102));
jLabel1.setText("Ho Ten: ");
jLabel2.setText("Email:");
test01Btn.setText("Test 01");
test01Btn.setActionCommand("Test 01");
test01Btn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
test01BtnActionPerformed(evt);
}
});
test02Btn.setText("Test 02");
test02Btn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
test02BtnActionPerformed(evt);
}
});
test03Btn.setText("Test 03");
test03Btn.setToolTipText("");
test03Btn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
test03BtnActionPerformed(evt);
}
});
tblTest.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"STT", "Ho Ten", "Email"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(tblTest);
jMenu1.setText("File");
jMenu3.setText("jMenu3");
jMenuItem2.setText("jMenuItem2");
jMenu3.add(jMenuItem2);
jMenuItem3.setText("jMenuItem3");
jMenu3.add(jMenuItem3);
jMenuItem5.setText("jMenuItem5");
jMenu3.add(jMenuItem5);
jMenuItem4.setText("jMenuItem4");
jMenu3.add(jMenuItem4);
jMenuItem6.setText("jMenuItem6");
jMenu3.add(jMenuItem6);
jMenu1.add(jMenu3);
jMenuItem1.setText("jMenuItem1");
jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenu2.setText("Edit");
jMenuBar1.add(jMenu2);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(33, 33, 33)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(66, 66, 66)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(test01Btn)
.addGap(70, 70, 70)
.addComponent(test02Btn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(test03Btn))
.addComponent(txtFullname)
.addComponent(txtEmail))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(33, 33, 33)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtFullname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(33, 33, 33)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(41, 41, 41)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(test01Btn)
.addComponent(test02Btn)
.addComponent(test03Btn))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void test01BtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_test01BtnActionPerformed
// TODO add your handling code here:
// System.out.println("Click test 01");
String fullname = txtFullname.getText();
String email = txtEmail.getText();
System.out.println("ten: " + fullname + ", email: " + email);
tableModel.addRow(new Object[] {tableModel.getRowCount() + 1, fullname, email});
}//GEN-LAST:event_test01BtnActionPerformed
private void test02BtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_test02BtnActionPerformed
// TODO add your handling code here:
System.out.println("Click test 02");
txtFullname.setText("");
txtEmail.setText("");
}//GEN-LAST:event_test02BtnActionPerformed
private void test03BtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_test03BtnActionPerformed
// TODO add your handling code here:
System.out.println("Click test 03");
String fullname = txtFullname.getText();
String email = txtEmail.getText();
JOptionPane.showMessageDialog(rootPane, "Ten: " + fullname + ", email: " + email);
}//GEN-LAST:event_test03BtnActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblTest;
private javax.swing.JButton test01Btn;
private javax.swing.JButton test02Btn;
private javax.swing.JButton test03Btn;
private javax.swing.JTextField txtEmail;
private javax.swing.JTextField txtFullname;
// End of variables declaration//GEN-END:variables
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)