Visualizzazione dei risultati da 1 a 4 su 4

Discussione: testo che lampeggia

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    14

    testo che lampeggia

    Ciao a tutti ho jTextPane contenente una porzione di testo evidenziata. Per evidenziare la porzione di testo ho usato oggetti Highlighter. Come posso fare per far lampeggiare il testo? Quello che vorrei è che quella parte evidenziata lampeggi in seguito a una determinata azione. Pensavo l'utilizzo di timer per far apparire e scomparire l'evidenziatura a intervalli di tempo.. però non so come fare.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: testo che lampeggia

    Originariamente inviato da Rynard
    Ciao a tutti ho jTextPane contenente una porzione di testo evidenziata. Per evidenziare la porzione di testo ho usato oggetti Highlighter. Come posso fare per far lampeggiare il testo? Quello che vorrei è che quella parte evidenziata lampeggi in seguito a una determinata azione. Pensavo l'utilizzo di timer per far apparire e scomparire l'evidenziatura a intervalli di tempo.. però non so come fare.
    Grazie
    Ammesso che conosci gli offset di inizio/fine della porzione di testo all'interno del document, a seguito di eventi da un timer (intendo javax.swing.Timer, non quello in java.util) vai a cambiare gli "attributi" del testo nel document.

    Sorgente di esempio creato "al volo":

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.*;
    
    public class TestFrame extends JFrame {
        private StyledDocument styledDoc;
        private JTextPane textPane;
        private boolean blink;
    
        public TestFrame() {
            super("Test Frame");
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setSize(300, 200);
    
            styledDoc = new DefaultStyledDocument();
            textPane = new JTextPane(styledDoc);
    
            try {
                SimpleAttributeSet attr = new SimpleAttributeSet();
                StyleConstants.setForeground(attr, Color.BLUE);
                styledDoc.insertString(0, "questo [ciao] lampeggia", attr);
            } catch (BadLocationException e) {
                // Non dovrebbe mai capitare
                System.err.println(e);
            }
    
            JScrollPane scrollPane = new JScrollPane(textPane);
            getContentPane().add(scrollPane);
    
            Timer t = new Timer(300, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    blink = !blink;
    
                    SimpleAttributeSet attr = new SimpleAttributeSet();
                    StyleConstants.setForeground(attr, blink ? Color.RED : Color.WHITE);
                    styledDoc.setCharacterAttributes(8, 4, attr, true);
                }
            });
    
            t.start();
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new TestFrame().setVisible(true);
                }
            });
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    14
    ok perfetto, l'ho adattato con l'evidenziatura.. grazie mille!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Rynard
    l'ho adattato con l'evidenziatura..
    Ma guarda che con gli "attributi" puoi gestire colore di foreground/background ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.