Tenho uma JtextArea (JScroolPane) com uma barra vertical de scrooll, quando o texto que esta no JTextArea é muito grande, a barra de rolagem fica na posição de baixo e o texto também, como eu faço para que tanto o texto como a barra de rolagem vertical, fiquem na posição de cima ???
Amigo, desculpa a resposta rápida, pensei que fosse uma instrução simples e nem testei, ao testar, verifiquei que não funcionou o comando jScrollPane.setCaretPosition(0);
Tentei com JtextArea,setCaretPosition(0); não da nenhum tipo de erro, mas não faz a barra de scroll subir ao topo, tentei usar -1 , conforme vi num tópico aqui, mas também não tive exito, saberia me dizer o que esta acontecendo ?
Pois é amigo, quando eu usei o TxtArea.setCaretPosition(0), tentei (1) e (-1), não deu nenhum erro, nem na linha de comando nem na execução, na saida gerou (run: CONSTRUÍDO COM SUCESSO tempo total: 17 segundos) mas ao executar o programa, a posição da barra de rolagem ficou em baixo, assim como o texto.
Quando usei o JScrollPane.setCaretPosition(0); deu erro na linha de comando “Cannot find symbol”
(Symbol method setCaretPosition(int), location Class JScrollPane), tentei já na base de teste e tentativa que sabia que não era o certo, JScrollPane1.setCaretPosition(0); aconteceu outro erro, location variable JScrollPane1 of type object na linha de comando e nem rodou o programa, claro.
Pensei que era uma operação fácil de ser feita, mas estou encontrando dificuldade.
Descobri que quando comento a linha onde limpo o campo JtextArea com o comando txtArea.setText(""); e insiro a linha txtArea.setCaretPosition(0); a barra de rolagem vai para cima, assim como o texto, só que quando seleciono outro texto para mostrar no JTextArea, este não aparece e fica o ultimo texto lido, só voltando a aparecer quando ativo a linha txtArea.setText(""); ai, o texto antigo é apagado e é mostrado o texto novo, só que em baixo , assim como a barra de rolagem. Teria como eu consertar isso ? Obrigado. Armando.
Testei antes e depois e não funcionou, não da erro, mas a barra e o texto ficam em baixo.
Com JScrollPane.setCaretPosition(0); deu erro na linha de comando conforme te passei.
O comando pode até funcionar mas no meu método ele dá erro. Seria algum erro no meu método ?
Vou manda-lo abaixo.
private void tblmusicasMouseClicked(java.awt.event.MouseEvent evt) {
//clico numa tabela que contem o nomes de musicas e seleciono uma
txtArea.setCaretPosition(0); //coloquei este comando antes e depois de txtArea.setText('')
txtArea.setText(""); // não dá nenhum erro, mas a barra de rolagem continua em baixo
btnTocar.setVisible(true);
txtNovoTom.setVisible(true);
txtTomAtual.setVisible(true);
btnAlterar.setVisible(true);
btnGravar.setVisible(true);
int linha = tblMusicas.getSelectedRow();
txtPMusica.setText(tblMusicas.getValueAt(linha, 0).toString());
File arquivo = new File(caminho + txtPMusica.getText() + ".txt");
try {
BufferedReader ler = new BufferedReader(new FileReader(arquivo));
String lin = ler.readLine();
//String[ ] notas = lin.split("\\s");
String tom = (lin.trim().substring(1,2));
switch (tom) {
case "#":
txtTomAtual.setText (lin.trim().substring(0,2));
break;
case "b":
txtTomAtual.setText (lin.trim().substring(0,2));
break;
default:
txtTomAtual.setText (lin.trim().substring(0,1));
break;
}
while (lin != null) {
txtArea.append(lin + "\n");
lin = ler.readLine();
}
} catch (Exception e) {
System.out.println("erroo na leitura " + e.getMessage());
}
}
OBS : Pode ser porque eu leio linha a linha do texto e fica setado na última linha e eu tenho que no final mandar ele lê a primeira linha para que o texto e a barra vão para cima ??? Obrigado.
Voltei ao tópico para dizer que o problema foi resolvido, o problema persistia porque esta posicionando o código, txtArea.setCaretPosition(0); no lugar errado, quando o posicionei em baixo do Catch a barra de rolagem e o texto foram para cima, deixo aqui este problema resolvido para outros membros caso precisem trabalhar com este comando.
} catch (Exception e) {
System.out.println("erroo na leitura " + e.getMessage());
}
xtArea.setCaretPosition(0);
}
Muito obrigado pela ajuda mais uma vez, vlw mesmo, fique com Deus meu amigo.
Ok, Como eu faço para finalizar a minha duvida e te dar os créditos ??? Valeu muito a sua ajuda para eu conseguir. Mais uma vez , obrigado e fique com Deus.