Gradle Java Desktop Application và SQLITE.
settings.gradle
rootProject.name = 'javadbsqlite'
include('app')
project(":app").name = "GradleJavaSQLLITEDB"build.gradle
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(8)) //Yêu cầu từ Java 8 trở lên
vendor = JvmVendorSpec.ADOPTOPENJDK
}
}
compileJava {options.encoding = "UTF-8"}
compileTestJava {options.encoding = "UTF-8"}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use JUnit Jupiter for testing.
// testImplementation 'org.junit.jupiter:junit-jupiter:5.7.2'
// This dependency is used by the application.
// implementation 'com.google.guava:guava:30.1.1-jre'
runtimeOnly 'org.xerial:sqlite-jdbc:3.36.0.3'
}
mainClassName = 'javadbsqlite.frmMain'
application {
// Define the main class for the application.
mainClass = mainClassName
}
jar {
manifest {
attributes( 'Main-Class': mainClassName)
}
from {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}
frmMain.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package javadbsqlite;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.io.File;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.text.ParseException;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.table.JTableHeader;
import javax.swing.text.JTextComponent;
/**
*
* @author admin
*/
public class frmMain extends javax.swing.JFrame {
private final String javaversion;
private int id = -1;
private JLabel lbldbname = new JLabel("Tên cơ sở dữ liệu:", JLabel.LEFT);
private JComboBox cbodbname = new JComboBox();
private JButton btnOpenDatabase = new JButton("Open Database");
private JButton btnDeleteDatabase = new JButton("Delete Database");
private JButton btnCloseDatabase = new JButton("Close Database");
private JButton btnAdd = new JButton("Add");
private JButton btnSave = new JButton("Save");
private JButton btnDelete = new JButton("Delete");
private JButton btnClose = new JButton("Close");
private JScrollPane scrollPane = new JScrollPane();
private DefaultTableModel dm = new javax.swing.table.DefaultTableModel() {
@Override
public Class<?> getColumnClass(int column) {
switch (column) {
case 0:
return Integer.class;
case 1:
return String.class;
case 2:
return Float.class;
default:
return String.class;
}
}
@Override
public boolean isCellEditable(int row, int column) {
if (column == 0) {
return false;
} else {
return false;
}
}
};
private JTable table = new JTable(dm) {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component component = super.prepareRenderer(renderer, row, column);
int rendererWidth = component.getPreferredSize().width;
TableColumn tableColumn = getColumnModel().getColumn(column);
tableColumn.setPreferredWidth(Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth()));
return component;
}
};
private final JLabel lblname = new JLabel("Name:", JLabel.LEFT);
private final JTextField txtname = new JTextField();
private final JLabel lblmoney = new JLabel("Money:", JLabel.LEFT);
private final JTextField txtmoney = new JTextField();
private final String fileseparator = System.getProperty("file.separator");
private final File fileFolder = new File("Databases");
private final String filedbType = ".db";
private Connection conn = null;
private int dbindex = -1;
private boolean dbmoney = false;
private String valuedbname = "";
private void SUM(JTable table, int column) {
if (table.getRowCount() < 1) {
return;
}
NumberFormat format = DecimalFormat.getInstance();
format.setGroupingUsed(true);
format.setMinimumFractionDigits(0);
float sum = 0;
int row = 0, rowcout = table.getRowCount();
try {
for (row = 0; row < rowcout; row++) {
sum = sum + format.parse(table.getValueAt(row, column).toString()).floatValue();
}
dm.insertRow(row, new Object[]{" ", "Cộng:", sum});
} catch (ParseException e) {
}
}
private String getFileName(String S) {
int index = S.lastIndexOf(".");
if (index > -1) {
S = S.substring(0, index);
}
return S;
}
private void loaddbname() {
if (!fileFolder.exists()) {
fileFolder.mkdir();
}
File[] listOfFiles = fileFolder.listFiles();
if (listOfFiles.length > 0) {
String files = null, name = "";
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
files = listOfFiles[i].getName();
if (files.endsWith(filedbType) || files.endsWith(filedbType.toUpperCase())) {
name = getFileName(files);
if (((DefaultComboBoxModel) cbodbname.getModel()).getIndexOf(name) == -1) {
cbodbname.addItem(name);
}
if (name.toLowerCase().equals("money")) {
dbmoney = true;
}
}
}
}
} else {
cbodbname.removeAllItems();
cbodbname.addItem("money");
}
}
private void OpenDatabase() {
try {
String value = this.valuedbname;
Class.forName("org.sqlite.JDBC");
File filecurent = new File(fileFolder.getCanonicalPath().concat(fileseparator).concat(cbodbname.getSelectedItem().toString().concat(filedbType)));
String dbURL = "jdbc:sqlite:".concat(filecurent.getCanonicalPath());
if (!filecurent.getParentFile().exists()) {
filecurent.mkdir();
}
conn = DriverManager.getConnection(dbURL);
if (conn != null) {
btnOpenDatabase.setEnabled(false);
btnCloseDatabase.setEnabled(true);
btnDeleteDatabase.setEnabled(false);
btnAdd.setEnabled(true);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
if (!dbmoney) {
cbodbname.removeItem("money");
}
if (value.toLowerCase().equals("money")) {
dbmoney = true;
}
if (((DefaultComboBoxModel) cbodbname.getModel()).getIndexOf(value) == -1) {
cbodbname.addItem(value);
}
DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
StringBuilder sb = new StringBuilder();
sb.append(value).append("; ").append(dm.getDriverName()).append("; ").append(dm.getDatabaseProductName()).append("; ")
.append(dm.getDatabaseProductVersion());
this.setTitle(sb.toString());
}
} catch (IOException | ClassNotFoundException | SQLException ex) {
}
}
private void CloseDatabase() {
try {
if (conn != null) {
conn.close();
conn = null;
}
this.setTitle("");
cbodbname.setSelectedIndex(-1);
dm.setRowCount(0);
btnOpenDatabase.setEnabled(true);
btnCloseDatabase.setEnabled(false);
btnDeleteDatabase.setEnabled(true);
btnAdd.setEnabled(false);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setText("");
txtmoney.setText("");
txtname.setEnabled(false);
txtmoney.setEnabled(false);
} catch (SQLException ex) {
}
}
private void DeleteDatabase() {
try {
File filecurent = new File(fileFolder.getCanonicalPath().concat(fileseparator).concat(cbodbname.getSelectedItem().toString().concat(filedbType)));
if (filecurent.delete()) {
if (conn != null) {
conn.close();
conn = null;
}
this.setTitle("");
cbodbname.removeItemAt(dbindex);
cbodbname.setSelectedIndex(-1);
dm.setRowCount(0);
btnOpenDatabase.setEnabled(true);
btnCloseDatabase.setEnabled(false);
btnDeleteDatabase.setEnabled(true);
btnAdd.setEnabled(false);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setText("");
txtmoney.setText("");
txtname.setEnabled(false);
txtmoney.setEnabled(false);
cbodbname.requestFocusInWindow();
}
} catch (IOException | SQLException ex) {
JOptionPane.showInternalMessageDialog(this, "Lỗi xóa cơ sở dữ liệu " + ex.getMessage(), "Xóa Database", JOptionPane.ERROR_MESSAGE);
}
}
private void createtbldmLop(Connection conn) {
String sql = "CREATE TABLE IF NOT EXISTS tbldmLop(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR(50) NOT NULL, money REAL NOT NULL);";
try {
if (conn != null) {
Statement stmt = conn.createStatement();
stmt.execute(sql);
}
} catch (SQLException e) {
}
}
private int inserttbldmLop(Connection conn) {
int kq = 0;
String name = txtname.getText();
float money = Float.valueOf(txtmoney.getText());
String sql = "INSERT INTO tbldmLop (name, money) VALUES ('" + name + "'," + money + ")";
try {
if (conn != null) {
Statement stmt = conn.createStatement();
kq = stmt.executeUpdate(sql);
}
} catch (SQLException e) {
}
return kq;
}
private int updatetbldmLop(Connection conn) {
int kq = 0;
NumberFormat format = DecimalFormat.getInstance();
format.setGroupingUsed(true);
format.setMinimumFractionDigits(0);
String name = txtname.getText();
try {
float money = format.parse(txtmoney.getText()).floatValue();
String sql = "UPDATE tbldmLop SET name = '" + name + "', money = " + money + " WHERE id = " + this.id;
if (conn != null) {
Statement stmt = conn.createStatement();
kq = stmt.executeUpdate(sql);
}
} catch (SQLException | ParseException e) {
}
return kq;
}
private int deletetbldmLop(Connection conn) {
int kq = 0;
try {
String sql = "DELETE FROM tbldmLop WHERE id = " + this.id;
if (conn != null) {
Statement stmt = conn.createStatement();
kq = stmt.executeUpdate(sql);
}
} catch (SQLException e) {
}
return kq;
}
private int selecttbldmLop(Connection conn) {
int kq = 0;
String sql = "SELECT * FROM tbldmLop";
try {
if (conn != null) {
Statement stmt = conn.createStatement();
try ( ResultSet rs = stmt.executeQuery(sql)) {
int row = -1;
dm.setRowCount(0);
while (rs.next()) {
kq++;
row++;
dm.insertRow(row, new Object[]{rs.getInt(1),
rs.getString(2), rs.getFloat(3)});
}
}
}
} catch (SQLException e) {
}
return kq;
}
private void GUI() {
lbldbname.setBounds(5, 5, 150, 30);
getContentPane().add(this.lbldbname);
cbodbname.setEditable(true);
cbodbname.setBounds(155, 5, 150, 30);
getContentPane().add(this.cbodbname);
btnOpenDatabase.setBounds(310, 5, 150, 30);
btnOpenDatabase.setMnemonic(KeyEvent.VK_O);
getContentPane().add(this.btnOpenDatabase);
btnCloseDatabase.setBounds(465, 5, 150, 30);
btnCloseDatabase.setMnemonic(KeyEvent.VK_C);
getContentPane().add(this.btnCloseDatabase);
btnDeleteDatabase.setBounds(615, 5, 150, 30);
btnDeleteDatabase.setMnemonic(KeyEvent.VK_D);
getContentPane().add(this.btnDeleteDatabase);
scrollPane.setBounds(5, 50, 600, 400);
scrollPane.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.red));
getContentPane().add(this.scrollPane);
scrollPane.setViewportView(table);
scrollPane.repaint();
table.setFont(new Font("Times New Roman", Font.PLAIN, 16));
JTableHeader th = table.getTableHeader();
th.setPreferredSize(new Dimension(30, 30));
th.setFont(new Font("Times New Roman", Font.BOLD, 16));
lblname.setBounds(610, 50, 100, 30);
lblname.setDisplayedMnemonic(KeyEvent.VK_N);
lblname.setLabelFor(txtname);
getContentPane().add(this.lblname);
txtname.setBounds(715, 50, 400, 30);
getContentPane().add(this.txtname);
lblmoney.setBounds(610, 85, 100, 30);
lblmoney.setDisplayedMnemonic(KeyEvent.VK_M);
lblmoney.setLabelFor(txtmoney);
getContentPane().add(this.lblmoney);
txtmoney.setBounds(715, 85, 200, 30);
getContentPane().add(this.txtmoney);
btnAdd.setBounds(715, 120, 100, 30);
btnAdd.setMnemonic(KeyEvent.VK_A);
getContentPane().add(this.btnAdd);
btnSave.setBounds(820, 120, 100, 30);
btnSave.setMnemonic(KeyEvent.VK_S);
getContentPane().add(this.btnSave);
btnDelete.setBounds(925, 120, 100, 30);
btnDelete.setMnemonic(KeyEvent.VK_L);
getContentPane().add(this.btnDelete);
btnClose.setBounds(1030, 120, 100, 30);
btnClose.setMnemonic(KeyEvent.VK_E);
getContentPane().add(this.btnClose);
cbodbname.addActionListener((ActionEvent e) -> {
this.dbindex = cbodbname.getSelectedIndex();
});
cbodbname.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (((JTextComponent) ((JComboBox) ((Component) e
.getSource()).getParent()).getEditor()
.getEditorComponent()).getText().trim().isEmpty()) {
valuedbname = "";
cbodbname.requestFocusInWindow();
} else {
btnOpenDatabase.requestFocusInWindow();
}
}
}
@Override
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!(Character.isAlphabetic(c)
|| Character.isDigit(c)
|| (c == KeyEvent.VK_BACK_SPACE)
|| (c == KeyEvent.VK_DELETE))) {
e.consume();
}
}
});
txtname.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (txtname.getText().trim().isEmpty()) {
txtname.requestFocusInWindow();
} else {
txtmoney.requestFocusInWindow();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
txtmoney.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (txtmoney.getText().trim().isEmpty()) {
txtmoney.requestFocusInWindow();
} else {
btnSave.requestFocusInWindow();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
char c = e.getKeyChar();
char decimalSeparator = symbols.getDecimalSeparator();
long count = txtmoney.getText().chars().filter(ch -> ch == decimalSeparator).count();
if (count == 0) {
if (!(Character.isDigit(c)
|| (c == KeyEvent.VK_BACK_SPACE)
|| (c == KeyEvent.VK_DELETE) || (c == decimalSeparator))) {
e.consume();
}
} else {
if (!(Character.isDigit(c)
|| (c == KeyEvent.VK_BACK_SPACE)
|| (c == KeyEvent.VK_DELETE))) {
e.consume();
}
}
}
});
dm.addColumn("id");
dm.addColumn("Name");
dm.addColumn("Money");
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setRowHeight(30);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(JLabel.CENTER);
table.getColumnModel().getColumn(0).setCellRenderer(centerRenderer);
cbodbname.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
}
@Override
public void focusLost(FocusEvent e) {
}
});
btnOpenDatabase.addActionListener((ActionEvent e) -> {
setOpenDatabase();
});
btnDeleteDatabase.addActionListener((ActionEvent e) -> {
setDeleteDatabases();
});
btnCloseDatabase.addActionListener((ActionEvent e) -> {
setCloseDatabases();
});
btnAdd.addActionListener((ActionEvent e) -> {
setAdd();
});
btnSave.addActionListener((ActionEvent e) -> {
setSave();
});
btnDelete.addActionListener((ActionEvent e) -> {
setDelete();
});
btnClose.addActionListener((ActionEvent e) -> {
setClose();
});
btnOpenDatabase.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnOpenDatabase.isFocusable()) {
setOpenDatabase();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnDeleteDatabase.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnDeleteDatabase.isFocusable()) {
setDeleteDatabases();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnCloseDatabase.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnCloseDatabase.isFocusable()) {
setCloseDatabases();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnAdd.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnAdd.isFocusable()) {
setAdd();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnSave.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnSave.isFocusable()) {
setSave();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnDelete.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnDelete.isFocusable()) {
setDelete();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
btnClose.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
if (btnClose.isFocusable()) {
setClose();
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
table.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
int row;
int rowcount = dm.getRowCount();
if (rowcount > 0) {
row = table.getSelectedRow();
if (row < rowcount - 1) {
Object value = table.getValueAt(row, 0);
id = Integer.valueOf(value.toString());
value = table.getValueAt(row, 1);
txtname.setText(value.toString());
value = table.getValueAt(row, 2);
NumberFormat format = DecimalFormat.getInstance();
format.setGroupingUsed(true);
format.setMinimumFractionDigits(0);
txtmoney.setText(format.format(value));
btnAdd.setEnabled(true);
btnSave.setEnabled(true);
btnDelete.setEnabled(true);
btnClose.setEnabled(true);
txtname.setEnabled(true);
txtmoney.setEnabled(true);
} else {
id = -1;
txtname.setText("");
txtmoney.setText("");
btnAdd.setEnabled(true);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
}
}
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
});
table.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int rowcount = dm.getRowCount();
if (rowcount > 0) {
int row = table.getSelectedRow();
if (e.getKeyCode() == KeyEvent.VK_UP) {
if (row > 0) {
getDataTableSelectRows(row - 1, rowcount);
}
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
getDataTableSelectRows(row + 1, rowcount);
}
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (row == rowcount - 1) {
row = 0;
id = -1;
txtname.setText("");
txtmoney.setText("");
} else {
row++;
}
System.out.println("row: " + row);
getDataTableSelectRows(row, rowcount);
}
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
}
private void getDataTableSelectRows(int row, int rowcount) {
try {
if (row < rowcount - 1) {
Object value = table.getValueAt(row, 0);
id = Integer.valueOf(value.toString());
value = table.getValueAt(row, 1);
txtname.setText(value.toString());
value = table.getValueAt(row, 2);
NumberFormat format = DecimalFormat.getInstance();
format.setGroupingUsed(true);
format.setMinimumFractionDigits(0);
txtmoney.setText(format.format(value));
btnAdd.setEnabled(true);
btnSave.setEnabled(true);
btnDelete.setEnabled(true);
btnClose.setEnabled(true);
txtname.setEnabled(true);
txtmoney.setEnabled(true);
} else {
id = -1;
txtname.setText("");
txtmoney.setText("");
btnAdd.setEnabled(true);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
}
} catch (NumberFormatException e) {
}
}
private void setCloseDatabases() throws HeadlessException {
int kq = JOptionPane.showConfirmDialog(this, "Bạn có chắc chắn đóng cơ sở dữ liệu không?", "Cơ sở dữ liệu", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (kq == JOptionPane.YES_OPTION) {
CloseDatabase();
this.setTitle("java.version: " + javaversion);
}
}
private void setDeleteDatabases() throws HeadlessException {
valuedbname = ((JTextField) cbodbname.getEditor().getEditorComponent()).getText().trim();
if (valuedbname.length() > 0) {
int kq = JOptionPane.showConfirmDialog(this, "Bạn có chắc chắn xóa cơ sở dữ liệu " + cbodbname.getSelectedItem() + " không?", "Xóa Database", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (kq == JOptionPane.YES_OPTION) {
DeleteDatabase();
this.setTitle("java.version: " + javaversion);
}
} else {
cbodbname.requestFocusInWindow();
}
}
private void setClose() throws HeadlessException {
try {
int kq = JOptionPane.showConfirmDialog(this, "Bạn có chắc chắn đóng cơ sở dữ liệu và thoát không?", "Thoát", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (kq == JOptionPane.YES_OPTION) {
if (conn != null) {
conn.close();
conn = null;
}
System.exit(0);
}
} catch (SQLException ex) {
}
}
private void setDelete() {
try {
int kq = JOptionPane.showConfirmDialog(this, "Bạn có chắc chắn xóa dữ liệu có id = " + this.id + " không?", "Xóa dữ liệu", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (kq == JOptionPane.YES_OPTION) {
if (this.id != -1) {
deletetbldmLop(this.conn);
this.id = -1;
txtname.setText("");
txtmoney.setText("");
selecttbldmLop(this.conn);
SUM(table, 2);
btnAdd.setEnabled(true);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
table.requestFocusInWindow();
}
}
} catch (HeadlessException ex) {
}
}
private void setSave() {
try {
if (txtname.getText().trim().length() == 0) {
txtname.requestFocusInWindow();
} else if (txtmoney.getText().trim().length() == 0) {
txtmoney.requestFocusInWindow();
} else {
if (this.id == -1) {
inserttbldmLop(this.conn);
} else {
updatetbldmLop(this.conn);
}
this.id = -1;
txtname.setText("");
txtmoney.setText("");
selecttbldmLop(this.conn);
SUM(table, 2);
btnAdd.setEnabled(true);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
int kq = JOptionPane.showConfirmDialog(this, "Đã lưu thành công. Tiếp tục thêm mới?", "Lưu dữ liệu", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (kq == JOptionPane.YES_OPTION) {
btnAdd.requestFocusInWindow();
} else {
table.requestFocusInWindow();
}
}
} catch (HeadlessException ex) {
}
}
private void setAdd() {
this.id = -1;
txtname.setText("");
txtmoney.setText("");
btnAdd.setEnabled(false);
btnSave.setEnabled(true);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(true);
txtmoney.setEnabled(true);
txtname.requestFocusInWindow();
}
private void setOpenDatabase() {
valuedbname = ((JTextField) cbodbname.getEditor().getEditorComponent()).getText().trim();
if (valuedbname.length() > 0) {
OpenDatabase();
createtbldmLop(this.conn);
int kq = selecttbldmLop(this.conn);
SUM(table, 2);
System.out.println(kq);
if (kq == 0) {
btnAdd.requestFocusInWindow();
} else {
table.requestFocusInWindow();
}
} else {
cbodbname.requestFocusInWindow();
}
}
public frmMain() {
this.javaversion = System.getProperty("java.version");
setLayout(null);
this.setTitle("java.version: " + javaversion);
getContentPane().setBackground(Color.white);
getRootPane().setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.blue));
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setResizable(true);
GUI();
cbodbname.removeAllItems();
loaddbname();
cbodbname.setSelectedIndex(-1);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent evt) {
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
});
btnOpenDatabase.setEnabled(true);
btnCloseDatabase.setEnabled(false);
btnDeleteDatabase.setEnabled(true);
btnAdd.setEnabled(false);
btnSave.setEnabled(false);
btnDelete.setEnabled(false);
btnClose.setEnabled(true);
txtname.setEnabled(false);
txtmoney.setEnabled(false);
}
public static void main(String[] args) {
try {
java.awt.EventQueue.invokeLater(() -> {
new frmMain().setVisible(true);
});
} catch (Exception ex) {
}
}
}

Tác giả: Vàng Văn Quyn
Những tin mới hơn
Những tin cũ hơn
Phần mềm quản lý CCVC Lào Cai
Hướng dẫn thêm chữ ký số vnpt smarrca mới trên vnedu
Hướng dẫn cấu hình SSL trên localhost cho XAMPP
Sửa lỗi định dạng số khi dùng Mail Merge trong Microsoft Word/LibreOffice Writer
Sửa máy in bị đen mép giấy, đen lề trái và phải
TT32_2018_BGDDT_CT GDPT 2018
TT13_2022_BGDDT_sửa đổi, bổ sung CT GDPT 2018
Tài liệu C++ và CodeBlocks V2
Vì sao đánh giá học sinh chương trình mới không còn điểm trung bình cả năm?
Đề cương ôn tập Python
- Click vào nút hiển thị ngày trong tuần hoặc tháng âm lịch để xem chi tiết
- Màu đỏ: Ngày tốt
- Xanh lá: Đầu tháng âm lịch
- Màu vàng: Ngày hiện tại
Canon 2900, HP 1020 in ra giấy trắng
Bài 7: Lập trình robot giáo dục KCbot điều khiển động cơ servo kết hợp cảm biến siêu âm
Khai báo và Đăng ký Chữ ký số của Nhà trường trên vnEdu
Tập huấn CĐS ngày 08/11/2023
Tập huấn CĐS ngày 06/11/2023