Java Swing Multiusuário

16 respostas Resolvido
java
Matheus_Henrique2

Saudações,

Estou trabalhando em uma aplicação Desktop e preciso muito que ela seja multiusuário, e não sei como fazer, estou utilizando o padrão MVC e JDBC, a aplicação é para controle de estoque e mais de um usuário vai utilizar.

O que preciso fazer?

16 Respostas

rodriguesabner

Vai precisar de um banco de dados, depois de tê-lo, você cria uma tabela, de preferência com o nome “login”, nessa tabela você adiciona as colunas “id” “nome” e “senha” (sem as aspas)…

Feito isso, você vai pra o seu IDE e conecta com o banco de dados. Eu costumo usar a comboBox, que é pra o usuário não ficar digitando o nome e tal. Mas você pode usar um jTextField normal.

rodriguesabner
//jTextField1(usuario), jTextField2(senha) 
    try{
    conecta.executaSQL("SELECT * FROM tabela WHERE nome= '"+jTextField1.getText()+"'");
    conecta.rs.first();
    if (conecta.rs.getString("senha").equals(jTextField2.getText())){
    novojFrame tela = new novojFrame();
    tela.setVisible(true);
    dispose();   
    }else{
    JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválidos!");     
    }} catch (SQLException ex) {
    JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválidos!");     
    }

Eu já jogo direto no meu botão de acessar o menu, funciona tranquilo

Matheus_Henrique2

Não é bem isso Abner, será que se um usuário cadastrar um produto, e o outro que estiver visualizando os itens do estoque, ele vai poder ver os itens atualizados?

rodriguesabner

Olha, se o banco de dados estiver em rede, pode sim

rodriguesabner

Pq seria um banco de dados pra 30 computadores, entende? Todos receberiam o mesmo update.

No caso você não quer vários usuários, quer um só, correto? Aí faria por exemplo o usuário Matheus Henrique, e todos acessariam sua conta, e todos receberiam o cadastro que você fizesse no momento que apertasse no botão cadastrar…

Matheus_Henrique2

Seriam três usuários.

rodriguesabner

Mesma coisa então, o Banco de Dados continua na rede compartilhando os dados.

rodriguesabner

A única coisa que seria um problema, mas que nem chega a ser um, é o usuário logado em outra máquina ter que apertar o botão de sincronizar. Por enquanto eu só consigo fazer o update de tudo dando um sync manualmente…

Matheus_Henrique2

Então eu tenho que ficar atualizando sempre para pegar as informações de tempo em tempo?

rodriguesabner

Sim, infelizmente eu só estou conseguindo assim. Ainda não encontrei uma alternativa de fazer a atualização automática

Matheus_Henrique2

Complicado, mas sei que tem uma saída.

rodriguesabner

Sim, sempre tem!

rodriguesabner
Solucao aceita

Amigo, eu fui preguiçoso para achar essa solução hahhaa, mas achei rapidinho:

Timer timer = new Timer();

timer.schedule(new TimerTask() {

public void run() {

//sua rotina de refresh…

}

}, 1000, 1000); //1 segundo

Esse timer atualizaria a aplicação sem ter que ficar clicando para atualizar!!

Matheus_Henrique2

Entendi, eu não sei se seria uma boa prática isso, mas já é uma ótima solução!

Matheus_Henrique2

Eu sei que não vou ter muito problema, pois são só três usuários, mas sabe como é né!?

rodriguesabner

Sim! Hahaha, boa sorte!

Criado 3 de março de 2018
Ultima resposta 4 de mar. de 2018
Respostas 16
Participantes 2