Bloco de Notas

3 respostas
Rummenigge

E ai gelera!

Eu estou fazendo um bloco de notas em java e queria saber como colocar um contador de linhas ao lado da TextArea.

Ex.:

1 | alguma coisa
2 | outra coisa
3 | e assim em diante

Já tentei utilizar dentro de um JPanel um JLabel que seria atualizado a cada tecla clicada pelo o usuário , mas não deu certo pois o JLabel não aceita um “\n” no método setText().

Se alguém souber como JLabel é escrito na vertical me ajude ai, vlw!

Código resumido :

JTextArea area = new JTextArea();

JPanel painelLinhas = new JPanel():

JLabel linhas = new JLabel(“1”);

JFrame frame = new JFrame(“Bloco de Notas”);

…

painelLinhas.add(linhas):

frame.getContentPane().add(painelLinhas, BorderLayout.WEST);

frame.getContentPane().add(area, BorderLayout.CENTER);

…

area.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e){
    String aux = "";

    for(int i = 1;i <= area.getLineCount;i++)
        aux += i + "\n";

    linhas.setText(aux);
    
}
...
...

});

3 Respostas

Eric_Yuzo

Não sei te dizer qual a melhor forma de fazer isto. Mas em cima da ideia de por uma label, tem como colocar tags html nela.

Falou…

B

uai põe outra TextArea com o conteúdo bloqueado (locked ou qualquer coisa parecida) com a mesma altura e uma largura (mais fina) fixa a esquerda do TextArea principal e vai atualizando ele…

Rummenigge

Valeu ai Eric Yuzo, vou utilizar as tags HTML para ver o resultado, pois sou novo em Java e não sabia que isso era possível.

brunoskrebs , eu já tinha utilizado uma TextArea à esquerda da principal, mas deu problemas quando a quantidade de números
aumentava dentro dela, pois tive que colocar um JScrollPane para fazer a área rolar, ai apareceu outro problema, não tinha como utilizar um setColumns() para aumentar a largura da TextArea de acordo com o tamanho do ultimo número inserido na mesma, os número começavam a ficar escondidos pela scrollbar.

Obrigado ae pessoal pela a atenção.

Criado 24 de setembro de 2010
Ultima resposta 25 de set. de 2010
Respostas 3
Participantes 3