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:
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?
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?