Klasse Document !

  • Themenstarter Themenstarter user10000
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
U

user10000

Gast
Hi,

ich habe folgendes Problem, vor langer Zeit habe ich mal was mit der Klasse Document ( so hieß es glaub ich ) gemacht. Ich konnte damit Texte erstellen die verschiedene Farben,Schriftarten und größen hatten. Ich finde da kein Beispiel mehr zu.

Hat da einer von euch was parat ?
 
Vielleicht hilft dir das. Unten hat es auch Beispielcode.

Am einfachsten arbeitest du wohl mit einem DefaultStyledDocument, und dem SimpleAttributeSet (um Text über insertString einzufügen. Das Set wird mit den Parametern (Fett, Farbe, Schriftart, etc...), über die Klasse StyledConstants, gefüllt).
 
Code:
/*
 * DocumentTest.java
 */
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class DocumentTest extends JFrame {
    public DocumentTest() {
        super("Document Test");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        
        //JComponents erzeugen:
        colorButton = new JButton("Text färben");
        toolbar = new JToolBar();
        document = new DefaultStyledDocument();
        textpane = new JTextPane(document);
        
        //Layout:
        textpane.setText("Document Test");
        toolbar.add(colorButton);
        getContentPane().add(toolbar, BorderLayout.NORTH);
        getContentPane().add(new JScrollPane(textpane), BorderLayout.CENTER);
        
        //Listener:
        colorButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textFaerben();
            }
        });
    }
    private void textFaerben() {
        int ende = textpane.getSelectionEnd();
        int anfang = textpane.getSelectionStart();
        if (ende == anfang) {
            JOptionPane.showMessageDialog(this, "Bitte Text auswählen", 
                    "Document Test", JOptionPane.ERROR_MESSAGE);
            return;
        }
        Color farbe = null;
        farbe = JColorChooser.showDialog(this, "Farbe", farbe);
        if (farbe != null) {
            Style style = document.addStyle("Farbe:"+farbe.getRGB(), null);
            StyleConstants.setForeground(style, farbe);
            document.setCharacterAttributes(anfang, ende-anfang, style, true);
        }
    }
    public static void main(String[] args) { new DocumentTest().setVisible(true); }
    private JButton colorButton;
    private JToolBar toolbar;
    private StyledDocument document;
    private JTextPane textpane;
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben