Oi pessoal, atualmente utilizo uma thread que atualiza de 30 em 30 segundos, e, uso um SELECT no banco, com um método para carregar os valores na tela. Terei que mudar isso, pois agora vou usar a tela em 3 computadores, a tela exibe os dados em várias JTextField onde cada usuario podera altera qualquer uma delas ao mesmo tempo. Gostaria que ao fazer o UPDATE em uma JTextField o valor fosse exibido de forma imediata nos demais computadores.
Ao iniciar, a tela carrega essa função: OBS: TENHO UMA THREAD QUE CARREGA ESSA FUNÇÃO DE 30 EM 30 SEGUNDOs para manter a tela aberta atualizada e se os 3 computadores forem fazer um UPDATE ao mesmo tempo podem não conseguir gravar todos valores.
Conexao CO = new Conexao();
FuncionarioReal FR = new FuncionarioReal();
private void A() {
try {
F.setID(Integer.parseInt(lbID1.getText())); F = CO.SelectFN(F.getID()); lbFunc01.setText(F.getNOME()); if (!lbFunc01.getText().equals("")) {//se a label estiver vazia, nao sera exibido nada. FR.setNOME(lbFunc01.getText()); FR = CO.SelectFR(FR.getNOME()); F01P01.setText(String.valueOf(FR.getPROD1R())); F01P02.setText(String.valueOf(FR.getPROD2R())); F01P03.setText(String.valueOf(FR.getPROD3R())); F01P04.setText(String.valueOf(FR.getPROD4R())); F01P05.setText(String.valueOf(FR.getPROD5R())); F01P06.setText(String.valueOf(FR.getMESATUAL())); F01P07.setText(String.valueOf(FR.getMESANT())); } else { lbFunc01.setVisible(false); F01P01.setVisible(false); F01P02.setVisible(false); F01P03.setVisible(false); F01P04.setVisible(false); F01P05.setVisible(false); F01P06.setVisible(false); F01P07.setVisible(false); } } catch (NumberFormatException | SQLException ex) { System.out.println(“A” + ex.getMessage()); } }
Para fazer o UPDATE utilizo essa:
private void Func01() { try {
int ID = Integer.parseInt(lbID1.getText()); String NOME = lbFunc01.getText(); int PROD1R = Integer.parseInt(F01P01.getText()); int PROD2R = Integer.parseInt(F01P02.getText()); int PROD3R = Integer.parseInt(F01P03.getText()); int PROD4R = Integer.parseInt(F01P04.getText()); int PROD5R = Integer.parseInt(F01P05.getText()); int MESATUAL = Integer.parseInt(F01P06.getText()); int MESANT = Integer.parseInt(F01P07.getText()); FuncionarioReal fr = new FuncionarioReal(ID, NOME, PROD1R, PROD2R, PROD3R, PROD4R, PROD5R, MESATUAL, MESANT); CO.UpdateFR(fr, NOME);
} catch (NumberFormatException | SQLException ex) { System.out.println(“Erro Func01” + ex.getMessage()); } }
GOSTARIA NÃO PRECISAR USAR MAIS A THREAD, sou novo em java, qualquer sugestão ou direcionamento eu agradeço.