24/11/12 18:37
Sevenjeak
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:
Nel codice il righello è un panello contenente delle JLabel per ogni righa, ogni volta che si verifica l'evento KeyPressed sul JTextPane il contenuto del righello si svuota per essere ricreato, in base al numero di righe nel JTextPane, il problema è che, non capisco come mai, il righello mi aumenta solamente alla pressione del secondo tasto sulla prima riga, non so se mi sono spiegato bene, in ogni caso potete sempre provare, come mai mi accade questo?
P.S.: Ho trovato su questo forum un codice che fa quello che voglio io, purtroppo non trovo più il link, e neanche lo avevo capito, cmq, se non ritrovo il link, come potrei risolvere?
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); } }
Nel codice il righello è un panello contenente delle JLabel per ogni righa, ogni volta che si verifica l'evento KeyPressed sul JTextPane il contenuto del righello si svuota per essere ricreato, in base al numero di righe nel JTextPane, il problema è che, non capisco come mai, il righello mi aumenta solamente alla pressione del secondo tasto sulla prima riga, non so se mi sono spiegato bene, in ogni caso potete sempre provare, come mai mi accade questo?
P.S.: Ho trovato su questo forum un codice che fa quello che voglio io, purtroppo non trovo più il link, e neanche lo avevo capito, cmq, se non ritrovo il link, come potrei risolvere?
Ultima modifica effettuata da Sevenjeak 24/11/12 18:39
aaa