import javax.swing.*;
import java.util.prefs.*;
import java.awt.event.*;
import javax.swing.text.*;
public class TextExemple implements ComponentListener,ActionListener {
private static String LARGEUR = "LARGEUR";
private static String HAUTEUR = "HAUTEUR";
private JTextPane tp;
private Preferences p;
public void actionPerformed(ActionEvent e) { // pseudo-print
System.out.println(tp.getText());
}
public void componentResized(ComponentEvent e) { // catch resize
JFrame f = (JFrame)(e.getSource());
p.putInt(LARGEUR,(int)(f.getSize().getWidth()));
p.putInt(HAUTEUR,(int)(f.getSize().getHeight()));
}
public void componentMoved(ComponentEvent e) {
}
public void componentShown(ComponentEvent e) {
}
public void componentHidden(ComponentEvent e) {
}
public TextExemple() {
JFrame f = new JFrame("Exemple");
JScrollPane sp = new JScrollPane();
tp = new JTextPane();
tp.setContentType("text/html"); // Please, edit HTML content
tp.setText("Bonjour<p><b>Au revoir</b>"); // Default HTML content
sp.getViewport().add(tp);
f.getContentPane().add(sp);
JMenuBar mb = new JMenuBar();
JMenu m2 = new JMenu("Fichier");
mb.add(m2);
JMenuItem mi = new JMenuItem("Voir"); // pseudo-print option
m.add(mi);
mi.addActionListener(this);
JMenu m = new JMenu("Edition");
mb.add(m);
Action g = new StyledEditorKit.BoldAction(); // active current jtextpane bold mode
m.add(g);
// f.pack(); // changed this to recover size from preferences file
Preferences p = Preferences.userRoot().node("MonApp");
int largeur = p.getInt(LARGEUR,100);
int hauteur = p.getInt(HAUTEUR,100);
f.setJMenuBar(mb);
f.setSize(largeur,hauteur);
f.setVisible(true);
f.addComponentListener(this);
}
public static void main(String []a) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TextExemple();
}
}
);
}
}