JTextArea (Java Platform SE 6)ist es moeglich zur Laufzeit des Programms die Schrift
JComponent (Java Platform SE 6)und Farbe des Textes
wenn's geht ueber ein Dialog, sowie es z.B. bei Notepad moeglich ist ?
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);
}
});
}
}