Aiuto: creazione righello per editor

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
36
sevenjeak.altervista.org
Sto provando, in un mio progetto, ad inserire un editor con righello affianco, non so se mi spiego, ma per provare solamente il righello ho riscritto questo piccolo programma:

Codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class num_count
{
   private static JPanel mPanel = new JPanel(new BorderLayout());
   private static JPanel righello = new JPanel();
   private static JTextPane txtPane = new JTextPane();
   
   public static void update_righello()
   {
           righello.removeAll();
           
       int lines = txtPane.getText().split(System.getProperty("line.separator")).length;
   
       for (int i = 1; i <= lines; i++)
       {
           JLabel nl = new JLabel(i + " ");
           nl.setAlignmentX(Component.RIGHT_ALIGNMENT);
           
           righello.add(nl);
       }
   }
   
   public static void main(String[] args)
   {
           JFrame gui = new JFrame("Prova righello");
           
           righello.setLayout(new BoxLayout(righello, BoxLayout.Y_AXIS));
           righello.setPreferredSize(new Dimension(25, 10));
           
           mPanel.add(righello, BorderLayout.WEST);
           mPanel.add(txtPane);
           
           txtPane.addKeyListener(new KeyListener(){
                   public void keyPressed(KeyEvent e)
           {
                           update_righello();
           }
 
                   public void keyReleased(KeyEvent arg0)
                   {
                   }
 
                   public void keyTyped(KeyEvent arg0)
                   {
                   }
                });
           
           update_righello();
           
           gui.add(mPanel);
           
           gui.setSize(500, 500);
           gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           gui.setVisible(true);
   }
}

Il panello del righello, mi funziona, ovvero, mi funziona in parte, mi aumenta di una linea ( non so se mi spiego ) solamente quando su una nuova riga del JTextPane premo un qualsiasi tasto per la seconda volta, come mai, come potrei risolvere? o se avete un'altro metodo, che altro metodo potrei usare per inserire il righello?
 

Discussioni simili