Definir texto no JTextArea - setText() não funciona
2 respostas
P
PauloAugusto
Bom dia!
Estou desenvolvendo um sistema e necessito que ele exiba algumas saídas em um JTextArea, como um console. Porém, não consigo definir um texto no componente. Já tentei o “setText()” e também o “append()”, mas com nenhum desses métodos obtive sucesso.
O texto é inserido no JTextArea, pois exibi uma mensagem com JOptionPane logo após de definir o texto, e parece que o problema está no Swing, porque depois de exibir a mensagem com o JOptionPane o texto aparece no JTextArea, do contrário nada acontece.
Alguém tem uma ideia do que pode ser feito para que eu consigo exibir a mensagem nesse JTextArea?
Desde já, obrigado!
EDIT: Já tentei utilizar o repaint() logo após definir o texto, mas não deu certo.
classConsoleextendsThread{@Overridepublicvoidrun(){if(radioTodos.isSelected()){AtualizarTodaEstruturaatualizarTudo=newAtualizarTodaEstrutura(txtArquivo.getText());atualizarTudo.execute();}elseif(radioEmpresa.isSelected()){AtualizarEstruturaEmpresaatualizarEmpresa=newAtualizarEstruturaEmpresa(txtEmpresa.getText(),arquivo.getPath());atualizarEmpresa.execute();}elseJOptionPane.showMessageDialog(null,"Selecione o tipo de estrutura para atualizar o banco de dados!");}}
Classe model
publicclassAtualizarEstruturaEmpresaextendsSwingWorker<Void,Void>{privateStringbanco,apelido,caminho;privateIntegercontLoop=0;privateBufferedReaderlerArquivo=null;publicAtualizarEstruturaEmpresa(Stringapelido,Stringcaminho){this.apelido=apelido;this.caminho=caminho;}@OverrideprotectedVoiddoInBackground(){// retorno um array com o banco de dados }@Overridepublicvoiddone(){Stringsql="";Statementstmt=null;try{Class.forName("com.mysql.jdbc.Driver");Connectioncon=// Faz conexão com meu banco de dadosstmt=con.createStatement();if(lerArquivo==null)lerArquivo=newBufferedReader(newFileReader(caminho));Stringlinha=lerArquivo.readLine();Principal.txtConsole.setText("Procurando delimitador...");}}