tentei tambem com System.exit(JFrame.WIDTH);
mas não consegui ainda.
gomesrod
Se só precisa voltar tudo ao estado inicial é simples, pode implementar programaticamente a rotina para “resetar” toda a aplicação: reiniciar conexoes com banco de dados, descartar os frames e instanciar uma nova janela principal, etc.
Mas se precisa reiniciar MESMO, inclusive com recarregamento das classes, então não dá para fazer só pelo Java, precisa de algum esquema na plataforma onde está rodando. Por exemplo um arquivo BAT que dependendo do código de retorno executa o mesmo programa novamente.
luis_serra
Opa cara…você me corrigiu, era esse o código! Obrigado
System.exit(JFrame.WIDTH);
Mais quando eu usei isso não tinha o JFrame como parâmetro.
era assim
System.exit(WIDTH);
gomesrod
System.exit(JFrame.WIDTH);
Isso não faz sentido. O parâmetro do método System.exit() é o código de retorno, que não tem nada a ver com essa constante JFrame.WIDTH
Mas esse código tem que fazer sentido para a aplicação, usar qualquer coisa ao acaso (como fiz acima) é uma péssima idéia.
luis_serra
Lembrando que o código é usado apenas para Encerrar, não para reiniciar.
Tenta colocar igual eu falei pra ver se vai funcionar pq no NetBeans funciono.
System.exit(WIDTH);
vpmaciel1981
gomesrod:
System.exit(JFrame.WIDTH);
Isso não faz sentido. O parâmetro do método System.exit() é o código de retorno, que não tem nada a ver com essa constante JFrame.WIDTH
packagedepto.aop.configuracao;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.util.Locale;importjavax.swing.JOptionPane;publicclassConfiguracao{privatestaticLocalelocale;static{Configuracao.carregarConfiguracoes();}publicstaticvoidcarregarConfiguracoes(){FileInputStreamfis=null;Filefile;ObjectInputStreamois=null;try{file=newFile("depto.cfg");if(!file.exists()){file.createNewFile();}fis=newFileInputStream("depto.cfg");ois=newObjectInputStream(fis);Configuracao.locale=(Locale)ois.readObject();if(Configuracao.locale==null){JOptionPane.showMessageDialog(null,"Erro!","Erro ao abrir arquivo",JOptionPane.ERROR_MESSAGE);}ois.close();}catch(finalExceptione){e.printStackTrace();JOptionPane.showMessageDialog(null,"Arquivo depto.cfg não pode ser carregado!","Erro ao abrir arquivo",JOptionPane.ERROR_MESSAGE);}}publicstaticLocalegetLocale(){returnConfiguracao.locale;}publicstaticvoidsalvarConfiguracoes(){Filefile;try{file=newFile("depto.cfg");if(!file.exists()){file.createNewFile();}finalFileOutputStreamfos=newFileOutputStream(file);finalObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(Configuracao.locale);oos.close();}catch(finalExceptione){e.printStackTrace();JOptionPane.showMessageDialog(null,"Arquivo depto.cfg não pode ser gravado!","Erro ao gravar arquivo",JOptionPane.ERROR_MESSAGE);}}publicstaticvoidsetLocale(Localelocale){Configuracao.locale=locale;if(locale==null){locale=Locale.getDefault();System.out.println(1);}}privateConfiguracao(){}}
vpmaciel1981
paulo_1981:
gomesrod:
System.exit(JFrame.WIDTH);
Isso não faz sentido. O parâmetro do método System.exit() é o código de retorno, que não tem nada a ver com essa constante JFrame.WIDTH
Mas esse código tem que fazer sentido para a aplicação, usar qualquer coisa ao acaso (como fiz acima) é uma péssima idéia.
labelBanco=newJLabel(AOP.getMessage("Banco"));
O problema é que fiz o programa para versões em inglês, português e espanhol.
e quando eu clico no botão confirmar ele grava o objeto locale selecionado e quando o programa é iniciado ele escolhe o idioma de acordo com
o arquivo properties correspondente
packagedepto.principal;importjavax.swing.UIManager;importjavax.swing.UnsupportedLookAndFeelException;importdepto.aop.configuracao.Configuracao;importdepto.usuario.Usuario;importdepto.usuario.UsuarioUtil;publicclassPrincipal{privatestaticfinalStringcaminhoApp=System.getProperty("user.dir")+System.getProperty("file.separator")+"DeptoPessoal.jar";publicstaticStringgetCaminhoApp(){returnPrincipal.caminhoApp;}publicstaticvoidmain(finalString[]args){try{javax.swing.SwingUtilities.invokeLater(newRunnable(){@Overridepublicvoidrun(){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(finalClassNotFoundExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(finalInstantiationExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(finalIllegalAccessExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(finalUnsupportedLookAndFeelExceptione){// TODO Auto-generated catch blocke.printStackTrace();}Configuracao.salvarConfiguracoes();UsuarioUtil.criarUsuario();finalUsuariousuario=newUsuario();Configuracao.carregarConfiguracoes();usuario.setLocale(Configuracao.getLocale());finalJanelaPrincipalapplication=newJanelaPrincipal(usuario);application.setLocationRelativeTo(null);application.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);application.setVisible(true);}});}catch(finalExceptione){e.printStackTrace();}}}
gomesrod
Acho que misturou os tópicos hehe
vpmaciel1981
Não misturei os tópicos eu preciso que o programa seja reiniciado ou que o ResouceBundle seja atualizado.
Mas como me perguntaram porque eu queria que o programa fosse reiniciado coloquei o motivo,
não foi só por querer saber.