Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44

    impostare JScrollPane orizzontale in una JtextPane

    ciao a tutti il mio problema e il suguente.
    Ho creato una JTextPane solo che quando la lunghezza del testo orizzontale e troppo lungo non si crea una JScrollPane ovviamente orizzontale. mentre quella verticale si...no riesco a capire perche c'e solo quella verticale e non quella orizzontale...e strano pero.l'ho creata cosi:

    codice:
    JTextPane  areaDiTesto = new JTextPane (document);
    JScrollPane   scrollPane = new JScrollPane (areaDiTesto);
    areaDiTesto.setEditable(false);
    ho provato pure a fare cosi:

    codice:
    JScrollPane   scrollPane = new JScrollPane (areaDiTesto,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    ma niente da fare.forse devo trovate un modo per dirgli di non andare a capo...hummm
    qualche suggerimento?

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

    Re: impostare JScrollPane orizzontale in una JtextPane

    Originariamente inviato da snikes
    no riesco a capire perche c'e solo quella verticale e non quella orizzontale
    JTextPane non è come JTextArea che ha un utile setLineWrap() con cui si può (dis)abilitare il line wrapping!

    La questione con JTextPane è più complicata, segui questa ricerca su Google e vedrai che la questione è nota e ben discussa.
    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 L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    hummm.. non pensavo cosi discussa....adesso leggo un po in giro vediamo se riesco a trovare una soluzione.

    volevo chiedere un altra cosa. si puo mettere il contenuto della mia TextPane in un foglio .rtf o pdf cosi come lo vedo...?
    poi andbin volevo chiederti un'altra cosa visto che sei l'unico che risponde alle mie domande (grazie tanto) come faccio a mettere per esempio dei pallini come stile? esempio:
    • prova
    • prova2


    io creo un
    SimpleAttributeSet attributes = new SimpleAttributeSet (); poi faccio StyleConstants.setBold(attributes,true); ed per esempio in questo caso setto il grassetto.

    non si possono impostare anche posizione, trattini,puntini ecc..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da snikes
    si puo mettere il contenuto della mia TextPane in un foglio .rtf o pdf cosi come lo vedo...?
    PDF no, RTF sì ma ti suggerisco di leggere il tutorial

    How to Use Editor Panes and Text Panes

    in particolare la sezione "Editor Panes vs. Text Panes" dove parla dei formati supportati.

    Originariamente inviato da snikes
    come faccio a mettere per esempio dei pallini come stile? esempio:
    • prova
    • prova2
    Non credo che si possa su un "styled" document ... non nel senso di "vera" lista. Se vuoi mettere una immaginetta o mettere un carattere speciale in un qualche font, si può fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    capisco...grazie delle info. pero noto anche che:

    setSpaceAbove() di StyleCostants non funge.non capisco il problema. non dovrebbe essere la stessa cosa di impostare per esempio Italic, Bold..ecc...?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da snikes
    setSpaceAbove() di StyleCostants non funge.non capisco il problema. non dovrebbe essere la stessa cosa di impostare per esempio Italic, Bold..ecc...?
    No, certi attributi sono per i caratteri, altri per "paragrafi".

    codice:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
    
    public class TestFrame extends JFrame {
        public TestFrame() {
            super("Test");
    
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(300, 300);
    
            StyledDocument document = new DefaultStyledDocument();
            SimpleAttributeSet attributes;
    
            try {
                attributes = new SimpleAttributeSet();
                StyleConstants.setItalic(attributes, true);
                document.insertString(document.getLength(), "Riga uno\n", attributes);
    
                attributes = new SimpleAttributeSet();
                StyleConstants.setSpaceAbove(attributes, 30);
                document.setParagraphAttributes(document.getLength(), 0, attributes, false);
    
                attributes = new SimpleAttributeSet();
                StyleConstants.setForeground(attributes, Color.RED);
                document.insertString(document.getLength(), "Riga due", attributes);
            } catch (BadLocationException e) { }
    
            JTextPane textPane = new JTextPane(document);
            JScrollPane scrollPane = new JScrollPane(textPane);
            getContentPane().add(scrollPane);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    TestFrame f = new TestFrame();
                    f.setVisible(true);
                }
            });
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    ok capito...grazie per la tua disponibilita. se non fosse per te...

    vorrei chiederti un'altra cosa. ho visto il tuo esempio della prima e seconda riga e ci sono. solo che non mi e chiara una cosa:
    io ho creato 2 attributi:

    codice:
    attributes = new SimpleAttributeSet ();
    StyleConstants.setItalic(attributes,true);
    StyleConstants.setFontSize(attributes,12);
    attributesTitolo= new SimpleAttributeSet();
    StyleConstants.setItalic(attributesTitolo,true);
    StyleConstants.setBold(attributesTitolo,true);
    StyleConstants.setFontSize(attributesTitolo,14);
    ora come posso fare a settare per esempio lo spaceAbove solo per l'attributesTitolo. perche ho provato e mi da lo spaceAbove in tutte le stringhe che stampo successivamente a questa chiamata:

    document.setParagraphAttributes(document.getLength (),0, attributesTitolo,false);

    non so se sono stato chiaro.
    grazie ancora.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da snikes
    come posso fare a settare per esempio lo spaceAbove solo per l'attributesTitolo. perche ho provato e mi da lo spaceAbove in tutte le stringhe che stampo successivamente a questa chiamata:
    Innanzitutto una premessa: un nuovo "paragrafo" inizia appena dopo un newline.
    A quel punto puoi decidere di impostare un altro valore per lo space above nel nuovo paragrafo oppure potresti anche rimuovere tutti gli attributi di paragrafo con es.:

    codice:
    SimpleAttributeSet attributes = new SimpleAttributeSet();  // vuoto
    document.setParagraphAttributes(document.getLength(), 0, attributes, true);
    P.S. se hai voglia, prova a scrivere dei metodi per fare il "dump" di tutta la struttura di un Document, ovvero l'albero degli Element e per ognuno i suoi attributi. Lo troverai molto istruttivo!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    scusa andbin non ho ben chiaro quello che mi hai spiegato all'ultimo messaggio.mi spiego meglio:
    prendiamo il tuo esempio che hai incollato qui. il tuo era con 2 righe ed io lo voglio far diventare di 3 righe. in Particolare io alla riga 3 non voglio piu che si ha uno spaceAbove di 30
    quindi lo space above dovrebbe essere solo tra la riga 1 e la riga 2...mentre tra la 2 e la 3 no... Ho provato a modificare il tuo codice ma non mi esce...mi esco o tutti attaccati o tutti con lo space above. mi potresti fare un esampio.grazie della tua buona volonta.

    codice:
                attributes = new SimpleAttributeSet();
                StyleConstants.setItalic(attributes, true);
                document.insertString(document.getLength(), "Riga uno\n", attributes);
    
                attributes = new SimpleAttributeSet();
                StyleConstants.setSpaceAbove(attributes, 30);
                document.setParagraphAttributes(document.getLength(), 0, attributes, false);
    
                attributes = new SimpleAttributeSet();
                StyleConstants.setForeground(attributes, Color.RED);
                document.insertString(document.getLength(), "Riga due", attributes);
                document.setParagraphAttributes(document.getLength(), 0, attributes, false);
                
                attributes = new SimpleAttributeSet();
                StyleConstants.setForeground(attributes, Color.RED);
                document.insertString(document.getLength(), "\nRiga tre", attributes);

  10. #10
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44

    help andBin

    help....solo tu puoi rispondere ^_^...sto impazzendo non riesco quello che ho scritto appena sopra...humm....

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.