By GokiSoft.com|
19:39 27/03/2023|
Java Advanced
[Source Code] Tìm hiểu Java Swing + CSDL - C2206L
#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.3" 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" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="183" max="-2" attributes="0"/>
<EmptySpace pref="16" max="32767" 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" max="-2" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel2" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="68" 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>
</Group>
<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" min="-2" pref="345" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace pref="26" 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="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 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="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>
</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="4" 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"/>
<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>
</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 java.awt.AWTEventMulticaster;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
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.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();
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);
}
});
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, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(68, 68, 68)
.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(jLabel1)
.addGap(55, 55, 55)
.addComponent(fullnameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(26, 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(saveBtn)
.addComponent(deleteBtn)
.addComponent(searchBtn)
.addComponent(sortBtn))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
studentTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"STT", "Ho Ten", "Email", "Ngay Tao"
}
) {
boolean[] canEdit = new boolean [] {
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.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
.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();
if(currentIndex >= 0) {
dataList.get(currentIndex).setFullname(fullname);
dataList.get(currentIndex).setEmail(email);
StudentsDAO.update(dataList.get(currentIndex));
currentIndex = -1;
showTable();
} else {
Students std = new Students();
std.setFullname(fullname);
std.setEmail(email);
std.setCreatedAt("2023-03-22");
std.setUpdatedAt("2023-03-22");
StudentsDAO.insert(std);
showNewData();
}
fullnameTxt.setText("");
emailTxt.setText("");
}//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();
}//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
/**
* @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.JButton deleteBtn;
private javax.swing.JTextField emailTxt;
private javax.swing.JTextField fullnameTxt;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
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;
String createdAt;
String updatedAt;
public Students() {
}
public Students(int id, String fullname, String email, String createdAt, String updatedAt) {
this.id = id;
this.fullname = fullname;
this.email = email;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
}
public Students(String fullname, String email, String createdAt, String updatedAt) {
this.fullname = fullname;
this.email = email;
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 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 + ", createdAt=" + createdAt + ", updatedAt=" + updatedAt;
}
}
#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.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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;
/**
*
* @author teacher
*/
public class StudentsDAO {
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(StudentsDAO.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(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(StudentsDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
statement = null;
conn = null;
}
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.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.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.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) 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.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 = ? 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.getId());
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.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)