1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.swing.event.*;
import javax.swing.text.*;
public class StylesDansDocument extends JFrame implements ActionListener, CaretListener {
private JTextPane texte = new JTextPane();
private JToolBar barre = new JToolBar();
private JToggleButton boutonItalique = new JToggleButton("<html><i>Italique</i></html>");
private JToggleButton boutonGras = new JToggleButton("<html>Gras</html>");
private JButton boutonCouleur = new JButton("<html>Couleur</html>");
private Color couleur = Color.black;
public StylesDansDocument() {
super("Editeur");
add(new JScrollPane(texte));
boutonItalique.addActionListener(this);
barre.add(boutonItalique);
boutonGras.addActionListener(this);
barre.add(boutonGras);
boutonCouleur.setForeground(couleur);
boutonCouleur.addActionListener(this);
barre.add(boutonCouleur);
add(barre, BorderLayout.NORTH);
texte.addCaretListener(this);
formater();
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private void formater() {
texte.setFont(new Font("Verdana", Font.PLAIN, 13));
texte.setBackground(Color.white);
Style défaut = texte.getStyle("default");
StyleConstants.setAlignment(défaut, StyleConstants.ALIGN_JUSTIFIED);
StyleConstants.setSpaceAbove(défaut, 3.0F);
StyleConstants.setLeftIndent(défaut, 5.0F);
StyleConstants.setSpaceBelow(défaut, 7.0F);
StyleConstants.setRightIndent(défaut, 5.0F);
StyleConstants.setLineSpacing(défaut, -0.2F);
StyleConstants.setForeground(défaut, couleur);
texte.setParagraphAttributes(défaut, true);
}
public void actionPerformed(ActionEvent e) {
String l = texte.getText();
SimpleAttributeSet attribut = new SimpleAttributeSet();
if (e.getSource()==boutonItalique) StyleConstants.setItalic(attribut, boutonItalique.isSelected());
if (e.getSource()==boutonGras) StyleConstants.setBold(attribut, boutonGras.isSelected());
if (e.getSource()==boutonCouleur) {
couleur = JColorChooser.showDialog(this, "Couleur du texte", couleur);
StyleConstants.setForeground(attribut, couleur);
boutonCouleur.setForeground(couleur);
}
texte.setCharacterAttributes(attribut, false);
texte.repaint();
System.out.println(l);
texte.requestFocus();
}
public void caretUpdate(CaretEvent e) {
AttributeSet attribut= texte.getCharacterAttributes();
Enumeration liste = attribut.getAttributeNames();
ArrayList<String> noms = new ArrayList<String>();
while (liste.hasMoreElements()) noms.add(liste.nextElement().toString());
boutonItalique.setSelected(noms.contains("italic"));
boutonGras.setSelected(noms.contains("bold"));
barre.revalidate();
}
public static void main(String[] args) { new StylesDansDocument(); }
} |
Partager