CRUD com Java e Swing (Interface Gráfica)
CRUD com Interface Grafica (Swing)
Este exemplo mostra como implementar um CRUD com Java usando Swing para a interface grafica. Utiliza os mesmos
conceitos do CRUD com JDBC, mas adiciona formularios visuais.
Requisitos
- Java JDK
- Biblioteca JDBC
- MySQL
- IDE (como IntelliJ, Eclipse ou NetBeans)
Estrutura Basica do Projeto
CrudSwing/
[Link]
[Link]
[Link]
[Link]
Classe [Link]
public class Usuario {
private int id;
private String nome;
private String email;
public Usuario() {}
public Usuario(String nome, String email) {
[Link] = nome;
[Link] = email;
}
public Usuario(int id, String nome, String email) {
[Link] = id;
[Link] = nome;
[Link] = email;
}
public int getId() { return id; }
public void setId(int id) { [Link] = id; }
public String getNome() { return nome; }
public void setNome(String nome) { [Link] = nome; }
public String getEmail() { return email; }
public void setEmail(String email) { [Link] = email; }
}
Classe [Link]
import [Link].*;
import [Link].*;
public class UsuarioDAO {
private final String url = "jdbc:mysql://localhost:3306/exemplo_crud";
private final String user = "root";
private final String password = "";
private Connection conectar() throws SQLException {
return [Link](url, user, password);
}
public void inserir(Usuario usuario) {
String sql = "INSERT INTO usuarios (nome, email) VALUES (?, ?)";
try (Connection conn = conectar(); PreparedStatement stmt = [Link](sql)) {
[Link](1, [Link]());
[Link](2, [Link]());
[Link]();
} catch (SQLException e) {
[Link]();
}
}
public List<Usuario> listar() {
List<Usuario> lista = new ArrayList<>();
String sql = "SELECT * FROM usuarios";
try (Connection conn = conectar(); Statement stmt = [Link](); ResultSet rs =
[Link](sql)) {
while ([Link]()) {
Usuario usuario = new Usuario(
[Link]("id"),
[Link]("nome"),
[Link]("email")
);
[Link](usuario);
}
} catch (SQLException e) {
[Link]();
}
return lista;
}
}
Classe [Link] (Interface Swing)
import [Link].*;
import [Link].*;
import [Link];
public class UsuarioForm extends JFrame {
private JTextField txtNome = new JTextField();
private JTextField txtEmail = new JTextField();
private JButton btnSalvar = new JButton("Salvar");
private JButton btnListar = new JButton("Listar");
private JTextArea txtArea = new JTextArea(10, 30);
private UsuarioDAO dao = new UsuarioDAO();
public UsuarioForm() {
setTitle("Cadastro de Usuario");
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
JLabel lblNome = new JLabel("Nome:");
[Link](10, 10, 100, 20);
[Link](120, 10, 200, 20);
JLabel lblEmail = new JLabel("Email:");
[Link](10, 40, 100, 20);
[Link](120, 40, 200, 20);
[Link](10, 70, 100, 25);
[Link](120, 70, 100, 25);
[Link](10, 110, 350, 140);
add(lblNome);
add(txtNome);
add(lblEmail);
add(txtEmail);
add(btnSalvar);
add(btnListar);
add(txtArea);
[Link](new ActionListener() {
public void actionPerformed(ActionEvent e) {
Usuario u = new Usuario([Link](), [Link]());
[Link](u);
[Link]("");
[Link]("");
}
});
[Link](new ActionListener() {
public void actionPerformed(ActionEvent e) {
List<Usuario> lista = [Link]();
[Link]("");
for (Usuario u : lista) {
[Link]([Link]() + " - " + [Link]() + " - " + [Link]() + "\n");
}
}
});
}
public static void main(String[] args) {
new UsuarioForm().setVisible(true);
}
}
SQL para Criar o Banco e Tabela
CREATE DATABASE exemplo_crud;
USE exemplo_crud;
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
email VARCHAR(100)
);
Observacoes
- Adicione o driver JDBC MySQL ao seu projeto (mysql-connector-java).
- Voce pode adicionar JTable, botoes de edicao e exclusao, validacao de campos etc.
- Ideal para pequenos projetos desktop com Java.