Você está na página 1de 21

Interfaces graficas

1 - Tela de cadastrar o usuario

2-Listagem de Estudante
Codigos
1-Classe Estudante na peckage entidade
package entidades;

public class Estudante {


private int id;
private String nome, sobrenome, telefone, sexo, endereco;

public Object[] toDataRow() {


return new Object[]{id, nome, sobrenome, telefone, sexo, endereco};
}

public Estudante(int id, String nome,String sobrenome,String


telefone,String sexo, String endereco) {
super();
this.id = id;
this.nome = nome;
this.sobrenome = sobrenome;
this.telefone = telefone;
this.sexo = sexo;
this.endereco = endereco;
}

public Estudante(String nome, String sobrenome, String telefone,


String sexo, String endereco) {
super();
this.nome = nome;
this.sobrenome = sobrenome;
this.telefone = telefone;
this.sexo = sexo;
this.endereco = endereco;
}

public int getId() {


return id;
}

public void setId(int id) {


this.id = id;
}

public String getNome() {


return nome;
}

public void setNome(String nome) {


this.nome = nome;
}

public String getSobrenome() {


return sobrenome;
}

public void setSobrenome(String sobrenome) {


this.sobrenome = sobrenome;
}
public String getTelefone() {
return telefone;
}

public void setTelefone(String telefone) {


this.telefone = telefone;
}

public String getSexo() {


return sexo;
}

public void setSexo(String sexo) {


this.sexo = sexo;
}

public String getEndereco() {


return endereco;
}

public void setEndereco(String endereco) {


this.endereco = endereco;
}

public String toString() {


return "Estudante [id=" + id + ", nome=" + nome + ",
sobrenome=" + sobrenome + ", telefone=" + telefone
+ ", sexo=" + sexo + ", endereco=" + endereco +
"]";
}
}

2-Classe EditarEstudante

package ui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import controladores.EstudanteControlador;
import entidades.Estudante;
import modelos.EstudanteDAO;
import javax.swing.JCheckBox;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.awt.event.ActionEvent;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import baseDados.ConexaoBaseDados;

import javax.swing.border.TitledBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.ListSelectionModel;
import java.awt.event.MouseAdapter;

public class EditarEstudantes {


private EstudanteDAO estudanteDAO;
public EstudanteControlador cont = new EstudanteControlador();
public Estudante estudante;
public ButtonGroup Bg = new ButtonGroup();
private JFrame frame;
private JTextField tf_nome;
private JTextField tf_sobrenome;
private JTextField tf_telefone;
private String sexo;
private JTextField tf_endereco;
private JTable tabela_estudantes;
private JTable tabela_estudantes_1;
private JTextField tf_id;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EditarEstudantes window = new EditarEstudantes();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the application.
*/
public EditarEstudantes() {
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 515, 616);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel sobrenometxt = new JLabel("Sobrenome:");
sobrenometxt.setBounds(33, 126, 77, 14);

JLabel nometxt = new JLabel("Nome:");


nometxt.setBounds(33, 83, 46, 14);

tf_nome = new JTextField();


tf_nome.setBounds(135, 90, 194, 20);
tf_nome.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
tf_nome.setColumns(10);

tf_sobrenome = new JTextField();


tf_sobrenome.setBounds(135, 123, 194, 20);
tf_sobrenome.setColumns(10);

JLabel telefonetxt = new JLabel("Telefone:");


telefonetxt.setBounds(33, 179, 68, 14);

tf_telefone = new JTextField();


tf_telefone.setBounds(135, 173, 194, 20);
tf_telefone.setColumns(10);

JLabel lblNewLabel_3 = new JLabel("Sexo:");


lblNewLabel_3.setBounds(33, 216, 46, 14);

JCheckBox chckbxNewCheckBox = new JCheckBox("M");


chckbxNewCheckBox.setBounds(135, 211, 49, 25);

JCheckBox chckbxNewCheckBox_1 = new JCheckBox("F");


chckbxNewCheckBox_1.setBounds(202, 211, 37, 25);
Bg.add(chckbxNewCheckBox_1);
Bg.add(chckbxNewCheckBox);

JLabel enderecotxt = new JLabel("Endereco: ");


enderecotxt.setBounds(33, 273, 64, 14);

tf_endereco = new JTextField();


tf_endereco.setBounds(135, 270, 194, 20);
tf_endereco.setColumns(10);

JButton btnNewButton = new JButton("Limpar");


btnNewButton.setBounds(369, 73, 99, 34);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tf_id.setText("");
tf_nome.setText("");
tf_sobrenome.setText("");
;
tf_telefone.setText("");
tf_endereco.setText("");
Bg.clearSelection();
chckbxNewCheckBox_1.setSelected(false);;
chckbxNewCheckBox.setSelected(false);
sexo = "";

try {

} catch (Exception erro) {


JOptionPane.showMessageDialog(null, "BOTAO CRIAR"+erro);
}

}
});
JButton btnNewButton_1 = new JButton("Salvar");
btnNewButton_1.setBounds(244, 514, 93, 23);
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

Connection con = new


baseDados.ConexaoBaseDados().obterConexao();

String nome = tf_nome.getText();


String sobrenome = tf_sobrenome.getText();
String telefone = tf_telefone.getText();
//String sexo = sexo.get;
String endereco = tf_endereco.getText();

chckbxNewCheckBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (chckbxNewCheckBox.isSelected()) {
chckbxNewCheckBox_1.setSelected(false);
sexo = "Masculino";
//chckbxNewCheckBox.isSelected()
}
}
});

chckbxNewCheckBox_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (chckbxNewCheckBox_1.isSelected() ){
chckbxNewCheckBox.setSelected(false);
sexo = "Feminino";
}
}
});
Estudante estudante = new Estudante(nome, sobrenome, telefone,
sexo, endereco);

estudante.setNome(nome);
estudante.setSobrenome(sobrenome);
estudante.setTelefone(telefone);
estudante.setSexo(sexo);
estudante.setEndereco(endereco);

EstudanteDAO estudanteDAO = new EstudanteDAO();


try {
estudanteDAO.adicionarEstudante(estudante);
JOptionPane.showMessageDialog(null, "Adicionado com
sucesso!");
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "BOTAO SALVAR,
metodo adicionarEstudante" +erro);
}
}
});

JScrollPane scrollPane = new JScrollPane();


scrollPane.setBounds(33, 351, 416, 144);

JButton btnNewButton_2 = new JButton("Listar");


btnNewButton_2.setBounds(33, 514, 89, 23);
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
listarEstudantes();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "Listar
estudantes!"+erro);
}
}
});

JButton btnNewButton_3 = new JButton("Actualizar");


btnNewButton_3.setBounds(140, 513, 97, 25);
btnNewButton_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(tf_id.getText());
String nome = tf_nome.getText();
String sobrenome = tf_sobrenome.getText();
String telefone= tf_telefone.getText();
//String sexo= sexo;
String endereco = tf_endereco.getText();

chckbxNewCheckBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (chckbxNewCheckBox.isSelected()) {
chckbxNewCheckBox_1.setSelected(false);
sexo = "Masculino";
}

}
});

chckbxNewCheckBox_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (chckbxNewCheckBox_1.isSelected() ){
chckbxNewCheckBox.setSelected(false);
sexo = "Feminino";
}

}
});
Estudante estudante = new Estudante(id, nome, sobrenome,
telefone, sexo, endereco);
estudante.setId(id);
estudante.setNome(nome);
estudante.setSobrenome(sobrenome);
estudante.setTelefone(telefone);
estudante.setSexo(sexo);
estudante.setEndereco(endereco);

EstudanteDAO estudanteDAO = new EstudanteDAO();


try {
estudanteDAO.actualizarEstudante(id, nome, sobrenome,
telefone, sexo, endereco);
listarEstudantes();
JOptionPane.showMessageDialog(null, "Alterado com
sucesso!");
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "Actualizar
estudantes"+e2);
}
}
});

JButton btnNewButton_4 = new JButton("Remover");


btnNewButton_4.setBounds(355, 513, 83, 25);
btnNewButton_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int id = Integer.parseInt(tf_id.getText());
String nome = tf_nome.getText();
String sobrenome = tf_sobrenome.getText();
String telefone= tf_telefone.getText();
//String sexo= sexo;
String endereco = tf_endereco.getText();
Estudante estudante = new Estudante(id, nome, sobrenome,
telefone, sexo, endereco);
estudante.setId(id);
estudante.setNome(nome);
estudante.setSobrenome(sobrenome);
estudante.setTelefone(telefone);
estudante.setSexo(sexo);
estudante.setEndereco(endereco);

EstudanteDAO estudanteDAO = new EstudanteDAO();


try {
estudanteDAO.eliminarEstudante(id);
listarEstudantes();
JOptionPane.showMessageDialog(null, "Estudante removido
com sucesso!");
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "Remover
estudante"+erro);
}
}
});

JLabel lblNewLabel = new JLabel("ID :");


lblNewLabel.setBounds(33, 51, 21, 16);

tf_id = new JTextField();


tf_id.setBounds(135, 48, 52, 22);
tf_id.setEditable(false);
tf_id.setColumns(10);

tabela_estudantes = new JTable();


tabela_estudantes_1 = new JTable() {
public boolean isCellEditable(int rowIndex, int colIndex) {
return false;
}
};
tabela_estudantes_1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int setar = tabela_estudantes_1.getSelectedRow();

try {
tf_id.setText(tabela_estudantes_1.getValueAt(setar,
0).toString());
tf_nome.setText(tabela_estudantes_1.getValueAt(setar,
1).toString());
tf_sobrenome.setText(tabela_estudantes_1.getValueAt(setar,
2).toString());
tf_telefone.setText(tabela_estudantes_1.getValueAt(setar,
3).toString());

//tf_sexo.setText(tabela_estudantes.getModel().getValueAt(setar, 4).toString());
tf_endereco.setText(tabela_estudantes_1.getValueAt(setar,
5).toString());
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "MouseClicked"+erro);
}
}
});
tabela_estudantes_1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tabela_estudantes_1.setFillsViewportHeight(true);
tabela_estudantes_1.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"Id", "Nome", "Sobrenome", "Telefone", "Sexo", "Endereco"
}
));
scrollPane.setRowHeaderView(tabela_estudantes_1);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(lblNewLabel);
frame.getContentPane().add(tf_id);
frame.getContentPane().add(tf_nome);
frame.getContentPane().add(btnNewButton);
frame.getContentPane().add(scrollPane);
frame.getContentPane().add(btnNewButton_2);
frame.getContentPane().add(btnNewButton_3);
frame.getContentPane().add(btnNewButton_1);
frame.getContentPane().add(btnNewButton_4);
frame.getContentPane().add(lblNewLabel_3);
frame.getContentPane().add(enderecotxt);
frame.getContentPane().add(telefonetxt);
frame.getContentPane().add(sobrenometxt);
frame.getContentPane().add(nometxt);
frame.getContentPane().add(tf_sobrenome);
frame.getContentPane().add(tf_telefone);
frame.getContentPane().add(tf_endereco);
frame.getContentPane().add(chckbxNewCheckBox);
frame.getContentPane().add(chckbxNewCheckBox_1);
}
public void listarEstudantes() throws SQLException {
try {
EstudanteDAO estudanteDAO = new EstudanteDAO();

DefaultTableModel modelo = (DefaultTableModel)


tabela_estudantes_1.getModel();
modelo.setNumRows(0);

List<Estudante> estudantes = estudanteDAO.selecionarTodos();

for(int num = 0; num < estudantes.size(); num++) {


modelo.addRow(new Object[] {
estudantes.get(num).getId(),
estudantes.get(num).getNome(),
estudantes.get(num).getSobrenome(),
estudantes.get(num).getTelefone(),
estudantes.get(num).getSexo(),
estudantes.get(num).getEndereco()
});
}

} catch (Exception erro) {


JOptionPane.showMessageDialog(null, "Listar estudante"+ erro);
}
}
}

3-Conexao baseDADOS
package baseDados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class ConexaoBaseDados {


/*
* dados e credenciais para a conexao a base dados
* servidor: localhost;
* nome base de dados: subds_contactos;
* porta do servidor de base de dados: 3306 (mysql)
* nome do usuario: root;
* palavra-passe:
*/
private final String serverName = "localhost";
private final String dbName = "subds_estudantes";
private final String portNumber = "3306";
private final String userID = "root";
private final String password = "";

public Connection obterConexao(){

String url = "jdbc:mysql://"+serverName+":"+portNumber+"/"+dbName;


Connection conexao = null;

try {
conexao = DriverManager.getConnection(url, userID, password);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro de conexão à base de dados:
"+e.getMessage(), "Base de Dados",
JOptionPane.ERROR_MESSAGE);
}
return conexao;
}
}

4-CLASSE EstudanteControlador
package controladores;

import java.util.List;

import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import entidades.Estudante;
import modelos.EstudanteDAO;

public class EstudanteControlador {


private EstudanteDAO estudanteDAO;

public EstudanteControlador() {
estudanteDAO = new EstudanteDAO();
}

public boolean adicionarEstudante(JDialog root, Estudante estudante) throws Exception {


if (!estudanteDAO.isEstudanteValido(estudante)) {
estudanteDAO.adicionarEstudante(estudante);;
return true;
} else {
JOptionPane.showConfirmDialog(root, "O estudante que pretende adicionar já existe!");
return false;
}
}

public boolean adicionar(Estudante estudante) throws Exception {


if (!estudanteDAO.isEstudanteValido(estudante)) {
estudanteDAO.adicionarEstudante(estudante);;
return true;
} else {
return false;
}
}

public void actualizarEstudante(int id, String nome, String sobrenome, String telefone, String sexo,
String endereco) throws Exception {
estudanteDAO.actualizarEstudante(id, nome, sobrenome, telefone, sexo, endereco);
}

public void eliminarEstudante(int estudanteID) throws Exception {


estudanteDAO.eliminarEstudante(estudanteID);
}

public Estudante obterEstudantePorID(int estudanteID) throws Exception {


return estudanteDAO.selecionarEstudantePorID(estudanteID);
}

public void visualizarTodosEstudantes(JTable tabelaEstudantes) throws Exception {


// Get current model of table
DefaultTableModel model = (DefaultTableModel) tabelaEstudantes.getModel();
// clear old data on table
model.setRowCount(0);
// get all available books and output to tblBook
List<Estudante> estudantes = estudanteDAO.selecionarTodos();
estudantes.forEach(e -> model.addRow(e.toDataRow()));
}

public List<Estudante> visualizarTodos() throws Exception {

return estudanteDAO.selecionarTodos();
}
}

5- classe EstudanteDAO
package modelos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import baseDados.ConexaoBaseDados;
import entidades.Estudante;

public class EstudanteDAO {

// retorna a lista de todos os estudantes


public List<Estudante> selecionarTodos() throws Exception {
String consulta = " select * from estudantes ";
Connection con = new baseDados.ConexaoBaseDados().obterConexao();
PreparedStatement ps = con.prepareStatement(consulta);

ResultSet rs = ps.executeQuery();
List<Estudante> estudantes = new ArrayList<>();
while (rs.next()) {
int id = rs.getInt("id");
String nome = rs.getString("nome");
String sobrenome = rs.getString("sobrenome");
String telefone = rs.getString("telefone");
String sexo = rs.getString("sexo");
String endereco = rs.getString("endereco");
estudantes.add(new Estudante( id, nome,sobrenome, telefone, sexo, endereco));
}
rs.close();
con.close();
return estudantes;
}

/*
* retorna apenas um estudante através do seu ID
*/
public Estudante selecionarEstudantePorID(int estudanteID) throws Exception {
List<Estudante> estudantes = selecionarTodos();

Optional<Estudante> encontrado = estudantes.stream()


.filter(estudante -> (estudante.getId() == estudanteID))
.findFirst();
return encontrado.isPresent() ? encontrado.get() : null;
}

// adicionar novo estudante


public void adicionarEstudante(Estudante estudante) throws SQLException, Exception {
String query = " insert into estudantes(nome, sobrenome, telefone, sexo, endereco)
values(?,?,?,?,?)";
Connection con = new ConexaoBaseDados().obterConexao();
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, estudante.getNome());
ps.setString(2, estudante.getSobrenome());
ps.setString(3, estudante.getTelefone());
ps.setString(4, estudante.getSexo());
ps.setString(5, estudante.getEndereco());
ps.executeUpdate();
con.close();
}

// actualizar estudante
public void actualizarEstudante(int id, String nome, String sobrenome,String telefone,String
sexo,String endereco) throws SQLException, Exception {
Connection con = new ConexaoBaseDados().obterConexao();
String query = " update estudantes set nome = ?, sobrenome = ?, telefone = ?, sexo = ?,
endereco = ? where id = ?";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, nome);
ps.setString(2, sobrenome);
ps.setString(3, telefone);
ps.setString(4, sexo);
ps.setString(5, endereco);
ps.setInt(6, id);
ps.executeUpdate();
con.close();
}

// eliminar estudante sendo dado o seu ID


public void eliminarEstudante(int id) throws Exception {
String delete = " delete from estudantes where id = ? ";
Connection con = new ConexaoBaseDados().obterConexao();
PreparedStatement ps = con.prepareStatement(delete);

// especificar o valor do parámetro


ps.setInt(1, id);
ps.executeUpdate();
ps.close();
con.close();
}

// verificar se o estudante a ser adicionado é um estudante válido.


public boolean isEstudanteValido(Estudante estudante) throws Exception {
List<Estudante> estudantes = selecionarTodos();
Optional<Estudante> estudanteEncontrado = estudantes.stream()
.filter(e -> (e.getId() == estudante.getId()))
.findFirst();
return estudanteEncontrado.isPresent();
}
}

Você também pode gostar