Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Aiuto creazione righello su JTextPane
Forum - Java - Aiuto creazione righello su JTextPane

Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 91
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 19:37
Sabato, 24/11/2012
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 sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4.  
  5. public class num_count
  6. {
  7.    private static JPanel mPanel = new JPanel(new BorderLayout());
  8.    private static JPanel righello = new JPanel();
  9.    private static JTextPane txtPane = new JTextPane();
  10.    
  11.    public static void update_righello()
  12.    {
  13.            righello.removeAll();
  14.            
  15.        int lines = txtPane.getText().split(System.getProperty("line.separator")).length;
  16.    
  17.        for (int i = 1; i <= lines; i++)
  18.        {
  19.            JLabel nl = new JLabel(i + " ");
  20.            nl.setAlignmentX(Component.RIGHT_ALIGNMENT);
  21.            
  22.            righello.add(nl);
  23.        }
  24.    }
  25.    
  26.    public static void main(String[] args)
  27.    {
  28.            JFrame gui = new JFrame("Prova righello");
  29.            
  30.            righello.setLayout(new BoxLayout(righello, BoxLayout.Y_AXIS));
  31.            righello.setPreferredSize(new Dimension(25, 10));
  32.            
  33.            mPanel.add(righello, BorderLayout.WEST);
  34.            mPanel.add(txtPane);
  35.            
  36.            txtPane.addKeyListener(new KeyListener(){
  37.                    public void keyPressed(KeyEvent e)
  38.            {
  39.                            update_righello();
  40.            }
  41.  
  42.                    public void keyReleased(KeyEvent arg0)
  43.                    {
  44.                    }
  45.  
  46.                    public void keyTyped(KeyEvent arg0)
  47.                    {
  48.                    }
  49.                 });
  50.            
  51.            update_righello();
  52.            
  53.            gui.add(mPanel);
  54.            
  55.            gui.setSize(500, 500);
  56.            gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  57.            gui.setVisible(true);
  58.    }
  59. }



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 il 24/11/2012 alle 19:39
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 16:02
Domenica, 25/11/2012
Sto facendo delle prove ... se osservi bene il righello si aggiorna solo quando viene premuto un tasto diverso da INVIO .... segue che quando vai a capo il righello si aggiorna solo quando inizi a scrivere..
Vediamo se risolvo/risolviamo questo problema, a dopo:)

PM Quote
Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 91
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 18:57
Domenica, 25/11/2012
Finalmente ho ritrovato quel link di qui stavo parlando:

http://www.pierotofy.it/pages/extras/forum/14/1037491-note ...

Ma purtroppo li si usa una JTextArea, e non ho ben capito come funziona, proverò a vederlo meglio.

PM Quote