import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.BorderFactory;
import javax.swing.border.*;
import javax.swing.JToolBar;
import javax.swing.JTable;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.plaf.basic.*;
import javax.swing.text.rtf.*;
import javax.swing.JComponent;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.applet.*;
import java.util.Enumeration;
// import filechooser
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.AbstractAction;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.filechooser.FileFilter;
import java.awt.HeadlessException;
import java.net.MalformedURLException;
import java.io.*;
// Drucken
import javax.print.*;
//import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.util.*;
import java.awt.print.*;
import javax.swing.text.StyledEditorKit.UnderlineAction;
import javax.print.attribute.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.UIManager;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.JTableHeader;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableColumn;
// Screenshot
import com.sun.image.codec.jpeg.JPEGCodec;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
class stecknFrame extends JFrame implements Printable, ItemListener {
public JTextComponent text;
private String[] schrift = {"Serif", "Arial", "SanfSerif", "Monospaced", "Dialog", "DialogInput",
"Times New Roman", "Monotype Corsiva", "TR", "Verdana", "Broadway BT",
"Comic Sans MS", "Victorian LET", "One Stroke Script LET", "Smudger LET"};
private String[] grose = {"15","16","17","18","19","20","21","22","23","24","25","26","27","30","31"};
private String[] fontfarbe = {"Schwarz","Rot","Blau","Grün", "Mehr Farben"};
private JButton zeichen,a, b, RGB, playb, far, hint, testb, zen, ah, unt,
neu, ja,nein, spei, op, btnOK, btnAbbrechen, sta;
private JTable table;
private JComboBox schriftart, schriftart2, comgrose, comgrose2, farbe;
private int style = Font.PLAIN, size = 17;
private JMenuBar bar;
private JMenu men1, men2, men3, men4, men5;
private JMenuItem jm0,jm1,jm2,jm3,jm4,jm5,jm6,jm7,jm8, jm9, jm10, jm11, jm100,
jm12, jm13, jm14, jm15, jm16, jm17, jm18, jm101;
private JToolBar tool, toolbar;
private Color newColor, newColor2;
private Box vbox, box1, box2, box3;
private JLabel hinweis;
private ButtonGroup lafGroup;
private JCheckBox radfett, radkursiv, radunterstrichen;
private ImageIcon icon1, icon2, icon3, icon4, icon5, icon6, icon7,
icon8, icon9;
private StyledDocument doc = new DefaultStyledDocument();
private SimpleAttributeSet as = new SimpleAttributeSet();
private String m_dateiname; // zu ladende/speichernde Datei
private String m_aktText;
private PrinterJob druckJob;
private Action underline, italic,aligncentre;
private StyledEditorKit edkit;
private JFileChooser chooser = new JFileChooser();
protected boolean DocumentIsUnedited=true, DocumentIsSaved=false;
private RTFEditorKit rtfkit;
private String filename="untitled1.txt",filetype=".txt";
private File thisfile;
// drucken
private Vector<String> zeilen;
private int zeilenHoehe;
private int anzahlSeiten;
private int zeilenProSeite;
private boolean druckAbfragen;
private String str;
private boolean geaendert = false; // noch nicht gespeicherte Änderungen
private String aktDateiname = null; // Name der aktuellen Datei
private int suchPosition = 0;
private JLabel statusleiste;
private Hashtable<Object, Action> aktionen = new Hashtable<Object, Action>();
private JFileChooser oeffnenDialog = new JFileChooser();
private KeyStroke ks;
private File file;
// Öffnen/Speichern
private BufferedReader in;
private PrintWriter out;
private JFileChooser fc = new JFileChooser();
private File sf;
private Object knopf;
private Container cp;
private JTextArea ta;
private JPopupMenu popup;
// Suchen
private String suchbegriff;
private JTextField eingabefeld = new JTextField();
private JFrame f, framen;
//private Suchdialog suchDialog = new Suchdialog(this);
// Look & Feel
private JCheckBox cb;
private ButtonGroup lafGroupe = new ButtonGroup();
private UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
// JTree
private JTree tree;
private JPanel ptree;
// Hauptframe
public stecknFrame() {
setSize(1020,730);
setIconImage(new ImageIcon("Icon7.gif").getImage());
setTitle("StecknOffice");
//-------------------------------------------------------------//
//----------------------Menu bar ------------------------------//
//-------------------------------------------------------------//
setJMenuBar(bar = new JMenuBar());
// Menu Datei
bar.add(men1 = new JMenu("Datei"));
men1.setMnemonic(KeyEvent.VK_D);
men1.add(jm0 = new JMenuItem("Neu", new ImageIcon("New24.gif")));
jm0.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));
men1.add(jm1 = new JMenuItem("Öffnen", new ImageIcon("Open24.gif")));
jm1.setAccelerator(KeyStroke.getKeyStroke('f', Event.CTRL_MASK));
men1.add(jm2 = new JMenuItem("Speichern", new ImageIcon("Save24.gif")));
jm2.setAccelerator(KeyStroke.getKeyStroke('S', Event.CTRL_MASK));
men1.add(jm3 = new JMenuItem("Speichern unter",new ImageIcon("SaveAs24.gif")));
jm3.setAccelerator(KeyStroke.getKeyStroke('p', Event.CTRL_MASK));
men1.addSeparator();
men1.add(jm10 = new JMenuItem("Drucken", new ImageIcon("Print24.gif")));
jm10.setAccelerator(KeyStroke.getKeyStroke('R', Event.CTRL_MASK));
men1.addSeparator();
men1.add(jm4 = new JMenuItem("Beenden", new ImageIcon("Stop24.gif")));
jm4.setAccelerator(KeyStroke.getKeyStroke('B', Event.CTRL_MASK));
// Menu Bearbeiten
bar.add(men2 = new JMenu("Bearbeiten"));
men2.setMnemonic(KeyEvent.VK_B);
men2.add(jm14 = new JMenuItem("Undo", new ImageIcon("Undo24.gif")));
jm14.setAccelerator(KeyStroke.getKeyStroke('U', Event.CTRL_MASK));
men2.add(jm15 = new JMenuItem("Rendo", new ImageIcon("Redo24.gif")));
jm15.setAccelerator(KeyStroke.getKeyStroke('B', Event.CTRL_MASK));
men2.addSeparator();
men2.add(jm5 = new JMenuItem("Kopieren", new ImageIcon("Copy24.gif")));
jm5.setAccelerator(KeyStroke.getKeyStroke('K', Event.CTRL_MASK));
men2.add(jm6 = new JMenuItem("Einfügen", new ImageIcon("Paste24.gif")));
jm6.setAccelerator(KeyStroke.getKeyStroke('E', Event.CTRL_MASK));
men2.add(jm7 = new JMenuItem("Löschen", new ImageIcon("Delete24.gif")));
jm7.setAccelerator(KeyStroke.getKeyStroke('L', Event.CTRL_MASK));
men2.add(jm101 = new JMenuItem("Ausschneiden", new ImageIcon("Cut24.gif")));
jm101.setAccelerator(KeyStroke.getKeyStroke('u', Event.CTRL_MASK));
men2.addSeparator();
men2.add(jm16 = new JMenuItem("Select all", new ImageIcon("Import24.gif")));
jm16.setAccelerator(KeyStroke.getKeyStroke('a', Event.CTRL_MASK));
// Menu Format
bar.add(men5 = new JMenu("Format"));
men5.setMnemonic(KeyEvent.VK_F);
men5.add(jm100 = new JMenuItem("Zeichen",new ImageIcon("History24.gif")));
jm100.setAccelerator(KeyStroke.getKeyStroke('Z', Event.CTRL_MASK));
men5.add(jm11 = new JMenuItem("Hintergrund", new ImageIcon("Properties24.gif")));
jm11.setAccelerator(KeyStroke.getKeyStroke('g', Event.CTRL_MASK));
men5.add(jm18 = new JMenuItem("Screenshot", new ImageIcon("Movie24.gif")));
jm18.setAccelerator(KeyStroke.getKeyStroke('o', Event.CTRL_MASK));
men5.addSeparator();
men5.add(jm17 = new JMenuItem("Suchen", new ImageIcon("Replace.gif")));
jm17.setAccelerator(KeyStroke.getKeyStroke('n', Event.CTRL_MASK));
// Menu Design
bar.add(men4 = new JMenu("Design"));
men4.setMnemonic(KeyEvent.VK_E);
men4.add(jm12 = new JMenuItem("Look & Feel", new ImageIcon("Bookmarks24.gif")));
jm12.setAccelerator(KeyStroke.getKeyStroke('F', Event.CTRL_MASK));
men4.add(jm13 = new JMenuItem("Programmfarbe", new ImageIcon("Preferences24.gif")));
jm13.setAccelerator(KeyStroke.getKeyStroke('P', Event.CTRL_MASK));
// Menu Hilfe
bar.add(men3 = new JMenu("Hilfe"));
men3.setMnemonic(KeyEvent.VK_H);
men3.add(jm8 = new JMenuItem("StecknOffice", new ImageIcon("TipOfTheDay.gif")));
jm8.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));
men3.addSeparator();
men3.add(jm9 = new JMenuItem("StecknSoft", new ImageIcon("TipOfTheDay.gif")));
jm9.setAccelerator(KeyStroke.getKeyStroke('t', Event.CTRL_MASK));
//-------------------------Menu Aktionen------------------------//
// Neu
jm0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm0) {
wirklichloschen();
}
}
});
// Daten Einlesen
jm1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source==jm1){
Open();
}
}
});
// Datei Speichern
jm2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source==jm2){
Save();
}
}
});
// Speichern unter
jm3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm3) {
Save();
}
}
});
//Beenden
jm4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm4) {
System.exit(0);
}
}
});
// Kopieren
jm5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm5) {
text.copy();
}
}
});
// Einfügen
jm6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm6) {
text.paste();
}
}
});
// Ausschneiden
jm101.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm101) {
text.cut();
}
}
});
// Aktion Hilfe - StecknOffice jm8
jm8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm8) {
//info();
}
}
});
// Aktion Hilfe - StecknSoft jm9
jm9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm9) {
// info2();
}
}
});
// Aktion Datei - Drucken
jm10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm10) {
dateiDrucken();
}
}
});
// Aktion Format - Hintergrund
jm11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm11) {
Component comp = (Component) e.getSource();
newColor = JColorChooser.showDialog(
null, "Wähle eine Farbe", comp.getBackground());
text.setBackground(newColor);
}
}
});
// Aktion Design - Look and Feel
jm12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm12) {
LaF la = new LaF();
la.setLocation (100, 100);
la.setSize(260, 130);
la.setVisible(true);
}
}
});
// Aktion Desing - Programmfarben
jm13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm13) {
Component com2 = (Component) e.getSource();
newColor2 = JColorChooser.showDialog(
null, "Wähle eine Farbe", com2.getBackground());
bar.setBackground(newColor2);
men1.setBackground(newColor2);
men2.setBackground(newColor2);
men3.setBackground(newColor2);
men4.setBackground(newColor2);
men5.setBackground(newColor2);
tool.setBackground(newColor2);
toolbar.setBackground(newColor2);
box3.setBackground(newColor2);
box2.setBackground(newColor2);
box1.setBackground(newColor2);
vbox.setBackground(newColor2);
hinweis.setBackground(newColor2);
table.setBackground(newColor2);
}
}
});
// Aktion Format - Suchen
jm17.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm17) {
Suchdialog();
}
}
});
// Action Screenshot()
jm18.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm18) {
try {
Screenshot();
} catch (Exception en) {System.out.println("Error");}
}
}
});
// Action Format - Zeichen
jm100.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == jm100) {
ZeichenF();
}
}
});
//----------------------------------------------------------------//
//---------------------- Toolbar u. Box --------------------------//
//----------------------------------------------------------------//
// Bar1
icon1 = new ImageIcon("AlignRight24.gif");
icon2 = new ImageIcon("Bold24.gif");
icon3 = new ImageIcon("Italic24.gif");
icon4 = new ImageIcon("AlignLeft24.gif");
icon5 = new ImageIcon("AlignCenter24.gif");
icon6 = new ImageIcon("Underline24.gif");
icon7 = new ImageIcon("New24.gif");
icon8 = new ImageIcon("Save24.gif");
icon9 = new ImageIcon("Open24.gif");
// Aktion hinzfügen = zen, ah, tesb
// TOOLBAR !!!! !!!!!!!!!
toolbar = new JToolBar();
toolbar.add(neu = new JButton(icon7));
toolbar.add(op = new JButton(icon9));
toolbar.add(spei = new JButton(icon8));
toolbar.addSeparator();
toolbar.add(b = new JButton(icon2));
toolbar.add(a = new JButton(icon3));
toolbar.add(unt = new JButton(icon6));
toolbar.addSeparator();
toolbar.add(zen = new JButton(icon4));
toolbar.add(ah = new JButton(icon5));
toolbar.add(testb = new JButton(icon1));
toolbar.addSeparator();
toolbar.add(schriftart = new JComboBox());
toolbar.addSeparator();
toolbar.add(comgrose = new JComboBox());
toolbar.addSeparator();
toolbar.add(farbe = new JComboBox());
// Speichern
spei.setToolTipText("Dokument speichern");
spei.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if(source1 == spei) {
Save();
}
}
});
// neu
neu.setToolTipText("Neues Dokument erstellen");
neu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if(source1 == neu) {
wirklichloschen();
}
}
});
// Öffnen
op.setToolTipText("Neues Dokument Öffnen");
op.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if(source1 == op) {
Open();
}
}
});
// a Button - Kursiv
a.setToolTipText("Text wird kursiv");
a.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if(source1 == a) {
style ^= Font.ITALIC;
updateFont();
}
}
});
// b Button - FETT
b.setToolTipText("Verändert die Stärke des Textes");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if (source1 == b) {
style ^= Font.BOLD;
updateFont();
}
}
});
// Unterstrichen !!! muss noch gemacht werden
unt.setToolTipText("Unterstreicht den Text");
unt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
}
});
// Button ZENtrieren
zen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source==zen) {
//styled.setParagraphAttributes(start,length, leftText, false);
}
}
});
schriftart.setToolTipText("Ändert die Schriftart");
schriftart.setEditable(true);
for(int no=0; no<schrift.length;++no)
schriftart.addItem(schrift[no]);
// Aktion Schriftart (JComboBox)
schriftart.addItemListener( new ItemListener(){
public void itemStateChanged( ItemEvent e ) {
updateFont();
}
});
// Farbe
farbe.setToolTipText("Ändert die Farbe");
farbe.setEditable(true);
for(int no=0; no<fontfarbe.length;++no)
farbe.addItem(fontfarbe[no]);
// Farbe - Aktion
farbe.addItemListener( new ItemListener(){
public void itemStateChanged( ItemEvent e ) {
updateFont();
}
});
// Größe
comgrose.setToolTipText("Ändert die Größe");
comgrose.setEditable(true);
for(int no=0; no<grose.length;++no)
comgrose.addItem(grose[no]);
// Größe Aktion
comgrose.addItemListener( new ItemListener(){
public void itemStateChanged( ItemEvent e ) {
updateFont();
}
});
box1 = Box.createHorizontalBox();
box1.add(toolbar);
// box 2
text = new JTextPane();
JScrollPane ScrollPane1 = new JScrollPane(text);
Dimension Size1 = new Dimension();
Size1.width = 500;
Size1.height = 970;
text.setPreferredSize(Size1);
text.setFont(new Font(schrift[0],Font.PLAIN,15));
box2 = Box.createHorizontalBox();
box2.add(new JScrollPane(text));
// box3
JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Projekte");
DefaultMutableTreeNode top1 = new DefaultMutableTreeNode("Schreiber");
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
//tree.addTreeSelectionListener(this);
DefaultMutableTreeNode section = new DefaultMutableTreeNode("Konto");
section.add(new DefaultMutableTreeNode("Anlegen"));
section.add(new DefaultMutableTreeNode("Editieren"));
section.add(new DefaultMutableTreeNode("Löschen"));
top.add(section);
section = new DefaultMutableTreeNode("Protokoll");
section.add(new DefaultMutableTreeNode("Anlegen"));
section.add(new DefaultMutableTreeNode("Editieren"));
top.add(section);
JScrollPane scroll = new JScrollPane(new JTree(top));
JTable table = new JTable(new String[][]{{"","","",""},
{"","","",""},{"","","",""},{"","","",""},{"","","",""}
,{"","","",""},{"","","",""},{"","","",""},{"","","",""}
,{"","","",""},{"","","",""},{"","","",""},{"","","",""}
,{"","","",""},{"","","",""},{"","","",""},{"","","",""}
,{"","","",""},{"","","",""},{"","","",""},{"","","",""}
,{"","","",""},{"","","",""}
}, new String[]{"A","B","C","D"});
JPanel lblPanel = new JPanel();
lblPanel.setLayout(new GridLayout(1, 1));
//JTable table = new JTable(rowData, columnNames);
lblPanel.add(new JScrollPane(table));
sp.setLeftComponent(scroll);
sp.setRightComponent(lblPanel);
Dimension minimumSize = new Dimension(150, 100);
scroll.setMinimumSize(minimumSize);
lblPanel.setMinimumSize(minimumSize);
sp.setDividerLocation(150);
sp.setPreferredSize(new Dimension(500, 400));
box3 = Box.createVerticalBox();
box3.add(new JScrollPane(sp));
// Box4
hinweis = new JLabel("Hier können Sie kleine Notizen erstellen");
Box box4 = Box.createHorizontalBox();
box4.add(hinweis);
// Box5
// ToolBar2 tool
tool = new JToolBar();
tool.add(playb = new JButton("StecknPlayer"));
tool.addSeparator();
tool.add(zeichen = new JButton(" Zeichen "));
tool.addSeparator();
tool.add(RGB = new JButton("Mehr Farben"));
// Mehr Farben Action
RGB.setToolTipText("Hier können Sie mehr Farben auswählen");
RGB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Component comp = (Component) e.getSource();
newColor = JColorChooser.showDialog(
null, "Wähle neue Farbe", comp.getBackground());
text.setFont( new Font( (String)schriftart.getSelectedItem(), style,
Integer.parseInt((String)comgrose.getSelectedItem() )));
text.setForeground(newColor);
}
});
// Aktion StecknPlayer (playb)
playb.setToolTipText("Startet den StecknPlayer");
playb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source1 = e.getSource();
if(source1 == playb) {
try {
Runtime.getRuntime().exec("java Menutest");
}
catch(Exception en) {
System.out.println("Fehler beim öffnen aufgetretten!");
}
}
}
});
// Aktion Zeichen
zeichen.setToolTipText("Hier können Sie Formatierungen vornehmen");
zeichen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == zeichen) {
ZeichenF();
}
}
});
Box box5 = Box.createHorizontalBox();
box5.add(tool);
// box vertikal
vbox = Box.createVerticalBox();
vbox.add(box1);
vbox.add(box2);
vbox.add(box4);
vbox.add(box3);
vbox.add(box5);
getContentPane().add(vbox,BorderLayout.CENTER);
} // ende stecknFrame - gehört zu ZeichenP
// Button Zeichen Frame (ZeichenF) !!!!!!!!!!!!!!!!!!!!
public void ZeichenF() {
JFrame f = new JFrame("Zeichen");
f.setResizable(false);
f.setIconImage(new ImageIcon("Stop24.gif").getImage());
f.setLocation(330,300);
final JTabbedPane tPan = new JTabbedPane(JTabbedPane.RIGHT);
JPanel p1 = new JPanel(), p2 = new JPanel(), p3 = new JPanel();
Border bo = BorderFactory.createTitledBorder("Formatierungen");
p1.setBorder(bo);
// ComboBox
p1.add(schriftart2 = new JComboBox());
for(int no=0; no<schrift.length;++no)
schriftart2.addItem(schrift[no]);
schriftart2.setEditable(true);
schriftart2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
text.setFont( new Font( (String)schriftart2.getSelectedItem(), style,
Integer.parseInt((String)comgrose.getSelectedItem() )));
}
});
p1.add(comgrose2 = new JComboBox());
for(int no = 0; no<grose.length; ++no)
comgrose2.addItem(grose[no]);
comgrose2.setEditable(true);
comgrose2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
text.setFont( new Font( (String)schriftart.getSelectedItem(), style,
Integer.parseInt((String)comgrose2.getSelectedItem() )));
}
});
p1.add(far = new JButton("Farbe"));
far.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Component com = (Component)e.getSource();
newColor = JColorChooser.showDialog(
null, "Schriftafarbe ändern", com.getBackground());
text.setFont( new Font( (String)schriftart.getSelectedItem(), style,
Integer.parseInt((String)comgrose.getSelectedItem() )));
text.setForeground(newColor);
}
});
// Action zeichen - Hintergrundfarbe
p2.add(hint = new JButton("Hintergrundfarbe"));
Border bo2 = BorderFactory.createTitledBorder("Hintergrund");
p2.setBorder(bo2);
hint.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Component com = (Component)e.getSource();
newColor = JColorChooser.showDialog(
null, "Schriftafarbe ändern", com.getBackground());
text.setBackground(newColor);
}
});
Border bo3 = BorderFactory.createTitledBorder("Weitere Formatierungen");
p3.setBorder(bo3);
p3.add(radfett = new JCheckBox("Fett"));
p3.add(radkursiv = new JCheckBox("Kursiv"));
p3.add(radunterstrichen = new JCheckBox("Unterstreichen"));
radfett.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == radfett) {
style ^= Font.BOLD;
updateFont();
}
}
});
radkursiv.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == radkursiv) {
style ^= Font.ITALIC;
updateFont();
}
}
});
// Unterstrichen !!! muss noch gemacht werden
radunterstrichen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == radunterstrichen) {
updateFont();
}
}
});
tPan.addTab("Formatierungen", p1);
tPan.addTab("Hintergrund", p2);
tPan.addTab("weitere Fromat.", p3);
tPan.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
System.out.println("Karte " + (tPan.getSelectedIndex() + 1)
+ " selektiert");
}
});
f.getContentPane().add(tPan);
f.setSize(320, 220);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setVisible(true);
} // ende ZeichenF
//-----------------------------------------------------------//
//---------------- Beginn Funktionen ------------------------//
//-----------------------------------------------------------//
// Schriftart - Farbe - Größe
public void updateFont(){
text.setFont(new Font((String)schriftart.getSelectedItem(), style,
Integer.parseInt((String)comgrose.getSelectedItem() )));
text.setForeground(getColor(farbe.getSelectedIndex() ));
}
private Color getColor( int index ) {
switch( index ){
case 0: return Color.BLACK;
case 1: return Color.RED;
case 2: return Color.BLUE;
case 3: return Color.GREEN;
case 4: return newColor;
}
return null;
} // ende Schriftart - Farbe - Größe
//-----------------------------------------------------------------//
//------------------------ Drucken Methode ------------------------//
//-----------------------------------------------------------------//
// zerlegen
public void textZerlegen() {
zeilen = new Vector<String>();
String letztesToken = "";
String text2 = text.getText();
StringTokenizer t = new StringTokenizer(text2, "\n\r", true);
while (t.hasMoreTokens()) {
String zeile = t.nextToken();
if(zeile.equals("\r"))
continue;
if(zeile.equals("\n") && letztesToken.equals("\n"));
zeilen.add("");
letztesToken = zeile;
if(zeile.equals("\n"))
continue;
zeilen.add(zeile);
}
}
public int print(Graphics pg, PageFormat pf, int seitennr)
throws PrinterException {
Graphics2D pg2 = (Graphics2D) pg;
pg2.translate(pf.getImageableX(), pf.getImageableY());
Font f = text.getFont();
pg2.setFont(f);
FontMetrics fm = pg.getFontMetrics();
if(druckAbfragen) {
int seitenBreite = (int) pf.getImageableWidth();
int seitenHoehe = (int) pf.getImageableHeight();
int anzahlZeilen = zeilen.size();
// Felder füllen
zeilenHoehe = fm.getHeight();
zeilenProSeite = Math.max(seitenHoehe/zeilenHoehe, 1);
anzahlSeiten = (int) Math.ceil((double)anzahlZeilen
/ (double)zeilenProSeite);
return Printable.NO_SUCH_PAGE;
}
else {
if (seitennr >= anzahlSeiten)
return Printable.NO_SUCH_PAGE;
int x = 0;
int y = fm.getAscent();
int zeilenIndex = zeilenProSeite * seitennr;
while(zeilenIndex < zeilen.size()
&& y < (int) pf.getImageableHeight()) {
str = zeilen.get(zeilenIndex);
pg2.drawString(str, x, y);
y += zeilenHoehe;
++zeilenIndex;
}
return Printable.PAGE_EXISTS;
}
}
// drucken
public void dateiDrucken() {
druckJob = PrinterJob.getPrinterJob();
druckJob.setJobName("StecknOffice - "+aktDateiname+" drucken");
druckJob.setCopies(1);
PageFormat pf = druckJob.pageDialog(druckJob.defaultPage());
textZerlegen();
druckJob.setPrintable(this, pf);
try {
druckAbfragen = true;
druckJob.print();
Book buch = new Book();
buch.append(this, pf, anzahlSeiten);
druckJob.setPageable(buch);
druckAbfragen = false;
if(druckJob.printDialog())
druckJob.print();
}
catch(Exception e) {
JOptionPane.showMessageDialog(this, "Fehler beim Drucken"
+ e, "Druckfehler", JOptionPane.ERROR_MESSAGE);
}
}
// ende dateiDrucken()
// Öffnen
public void Open() {
int option = chooser.showOpenDialog(text);
if(option == JFileChooser.APPROVE_OPTION) {
File sf = chooser.getSelectedFile();
try{
FileReader fr = new FileReader(sf);
text.read(fr,null);
fr.close();
}
catch(IOException ea) {
System.out.println("Probleme beim Öffnen oder Lesen von " + sf.getName());
}
}
}
// Speichern - Speichern unter
public void Save() {
String schreiben;
if(fc.showSaveDialog(cp)==0) {
sf = fc.getSelectedFile();
try{
out = new PrintWriter(new FileWriter(sf)); //Datei zum Schreiben öffnen
schreiben = text.getText();
out.println(schreiben);//Schreiben
out.flush();//der Speicher wird gelehrt, damit die Datei völlig zu Ende geschrieben wird.
out.close();//Schließen der Datei
}
catch(Exception ex2){System.out.println(ex2);} //Bei Fehlern werden diese in der Konsole ausgegeben
}
else{// Modales Fenster
JOptionPane.showMessageDialog(cp,"Keine Datei zum Speichern gewählt!",
"SPEICHERN",JOptionPane.ERROR_MESSAGE);
}
}
// abfragen neue datei
public void wirklichloschen() {
f = new JFrame();
f.setIconImage(new ImageIcon("Save24.gif").getImage());
f.setLocation(320,300);
f.setTitle("Speichern ?");
f.setResizable(false);
f.setSize(new Dimension(445, 120));
f.getContentPane().setLayout(null);
JLabel label = new JLabel();
label.setText("Möchten Sie diese Datei speichern ?");
label.setBounds(new Rectangle(125, 15, 250, 29));
f.add(label, BorderLayout.NORTH);
ja = new JButton();
ja.setBounds(new Rectangle(13, 51, 202, 25));
ja.setText("Ja");
this.getRootPane().setDefaultButton(ja);
f.add(ja);
nein = new JButton();
nein.setBounds(new Rectangle(222, 51, 202, 25));
nein.setText("Nein");
f.add(nein);
f.show();
ja.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(ja == source) {
Save();
}
}
});
nein.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(nein == source) {
text.setText("");
f.dispose();
}
}
});
} // ender wirklichlöschen
public void pop(final JTextPane text) {
final JPopupMenu x = new JPopupMenu();
JMenuItem i1 = new JMenuItem("Cut");
JMenuItem i2 = new JMenuItem("Copy");
JMenuItem i3 = new JMenuItem("Paste");
JMenuItem i4 = new JMenuItem("Select All");
x.add(i1); x.add(i2); x.add(i3);
x.addSeparator(); x.add(i4);
i1.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
text.cut();
}
});
i2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.copy();
}
});
i3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.paste();
}
});
i4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.selectAll();
}
});
text.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
checkForTriggerEvent(e);
}
public void mouseReleased(MouseEvent e) {
checkForTriggerEvent(e);
}
private void checkForTriggerEvent( MouseEvent e ) {
if ( e.isPopupTrigger() )
x.show( e.getComponent(), e.getX(), e.getY() );
}
});
}
/*
// String Suche
protected void bearbeitenSuchen(int pos) {
if(pos == 0) {
eingabefeld.setLocation((getLocation().x + 100),
getLocation().y + 100);
eingabefeld.setVisible(true);
}
String suchbegriff = eingabefeld.getSuchbegriff();
if(suchbegriff == null)
return;
// Text zum Durchsuchen in String-Object speichern
String text = text.getText();
int index = text.indexOf(suchbegriff, pos);
if(index == -1) {
JOptionPane.showMessageDialog(null, "String nicht gefunden",
"Meldung",JOptionPane.INFORMATION_MESSAGE);
suchPosition = 0;
} else {
//String hervorheben
text.grabFocus();
text.setCaretPosition(index);
text.moveCaretPosition(index + suchbegriff.length());
suchPosition = index + suchbegriff.length();
}
} // ende bearbeitenSuchen
*/
// Screenshot
public void Screenshot() throws Exception {
Thread.sleep( 2000 );
BufferedImage bi = new Robot().createScreenCapture(
new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
OutputStream out = new FileOutputStream("c:/screenshot.bmp");
JPEGCodec.createJPEGEncoder(out).encode(bi);
out.close();
JOptionPane.showMessageDialog(cp,"c:/screenshot.bmp",
"Hinweis",JOptionPane.ERROR_MESSAGE);
} // ende Screenshot
} // ende StecknFrame !!!!!!!!!!!!!!!!!!!!!
public class stecknoffice {
public static void main(String[] argv) throws Exception {
stecknFrame frame = new stecknFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}