JTextArea Farbe und Schrift aendern

bandy

Bekanntes Mitglied
Hallo,

ist es moeglich zur Laufzeit des Programms die Schrift und Farbe des Textes in JTextArea zu aendern, wenn's geht ueber ein Dialog, sowie es z.B. bei Notepad moeglich ist ?:bahnhof:
 
wenn's geht ueber ein Dialog, sowie es z.B. bei Notepad moeglich ist ?

Hallo bandy,

Einen Font Designer findest du hier: Visual Font Designer Java Tips Weblog
Die Auswahl der Farbe geht mit JColorChooser(*).

Gruß,
André

(*) "Color Chooser" sind allerdings auch schon im "Font Designer" integriert.

Hier ist noch ein kleines Beispiel dazu:
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.util.*;
import javax.swing.*;

public class TextareaStyle extends JFrame {

    private JButton btFont;
    private JToolBar toolbar;
    private JTextArea textarea;

    public TextareaStyle() {
        initComponents();
        Map<TextAttribute, Object> attributes = (Map<TextAttribute, Object>) textarea.getFont().getAttributes();
        attributes.put(TextAttribute.FOREGROUND, Color.RED);
        attributes.put(TextAttribute.BACKGROUND, Color.WHITE);
        textarea.setFont(textarea.getFont().deriveFont(attributes));
    }

    private void initComponents() {
        setSize(800, 600);
        setLocationRelativeTo(null);
        textarea = new JTextArea("JTextArea");
        toolbar = new JToolBar();
        btFont = new JButton("Font...");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        getContentPane().add(new JScrollPane(textarea), BorderLayout.CENTER);
        toolbar.setRollover(true);
        btFont.setFocusable(false);
        btFont.setHorizontalTextPosition(SwingConstants.CENTER);
        btFont.setVerticalTextPosition(SwingConstants.BOTTOM);
        toolbar.add(btFont);
        getContentPane().add(toolbar, BorderLayout.PAGE_START);
        btFont.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(final ActionEvent evt) {
                VisualFontDesigner designer = new VisualFontDesigner();
                designer.showDialog(TextareaStyle.this, textarea.getFont(), "Font Designer");
                textarea.setFont(designer.getDesignedFont());
            }
        });
    }

    public static void main(final String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new TextareaStyle().setVisible(true);
            }
        });
    }
}
 
Zuletzt bearbeitet:

Zurück
Oben