/* JWriter 1.0, made by J T, (c) 2006, this product is official freeware,
German Edition */
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Writer extends Frame
implements WindowListener, ActionListener, KeyListener, MouseListener {
//Die privates
private String dname="Textdokument.txt";
private String dname2="1,10";
private String dname3="Sicherung.txt";
private Panel top;
private JTextArea eingabeFeld;
private TextField datei;
private Button speichern;
private PrintWriter ausgabeDatei;
private Button Test;
private Panel bottom;
private Button Neu;
private Panel z;
private Button About;
private Button Datei;
private Panel settings;
private TextField SG;
private Button G;
private Button K;
private Color Farbe1;
private Color Farbe2;
private Color Farbe3;
private Color Rot1;
private Color Rot2;
private Color Rot3;
private Color Grau1;
private Color Grau2;
private Button Help;
private Button kursiv;
private JMenuItem ende;
private JMenuItem ESchrift;
private JMenuItem Eaus;
private JMenuItem EDesign;
private Panel Designs;
private JButton DRot;
private JButton DGruen;
private JButton DBlau;
private JButton DGelb;
private JLabel hinweis1;
private JButton DRueckgaengig;
private JLabel hinweis2;
private JLabel leer1;
private JLabel hinweis3;
private JButton DRot3;
private JButton DGruen3;
private JButton DBlau3;
private JButton DGelb3;
private JButton DSchwarz3;
private JMenuItem about;
private JMenuItem Programmierung;
private JMenuItem oeffnen;
private boolean isModified = false;
int buchstaben;
int woerter = 0;
int dieEins = 1;
int ergebnis;
private JLabel hinweis4;
private JTextField designFeld;
private JButton Frage1;
private JLabel leer2;
private ImageIcon ques;
private JLabel anschlaege;
private JButton Rechner;
private JButton xxx;
private boolean gray = true;
private JDialog xyz;
public static void main(String [] args) {
// Die Einstellungen
Writer test = new Writer();
test.setUndecorated(false); //Einstellung, um das Windows-Fenster zu entfernen.
test.setVisible(true);
test.setTitle("JWriter");
test.setForeground(Color.BLACK);
test.setLocation(50,50);
test.setCursor(HAND_CURSOR);
test.setBackground(Color.lightGray);
test.pack();
}
// Der Konstruktor
Writer() {
makeGui();
addWindowListener(this);
}
public void makeGui() {
//Die Panels
z = new Panel();
settings = new Panel();
settings.setLayout(new GridLayout(0,2));
settings.setVisible(true);
top = new Panel();
Designs = new Panel();
Designs.setVisible(true);
Designs.setLayout(new FlowLayout(FlowLayout.LEFT));
Designs.setPreferredSize(new Dimension(300, 300));
//Die Elemente fürs Speichern
speichern = new Button("Text speichern");
speichern.setBackground(Color.lightGray);
top.add(speichern);
speichern.addMouseListener(this);
speichern.addActionListener(this);
datei= new TextField(dname,20);
datei.setBackground(Color.lightGray);
datei.addMouseListener(this);
top.add(datei);
add(BorderLayout.NORTH,top);
//Die Icons und Bilder
ImageIcon save = new ImageIcon( "save.gif" );
ImageIcon ques = new ImageIcon( "question.gif" );
//Hier die zu definierenden Farben:
Farbe1 = new Color (128, 255, 255);
Farbe2 = new Color (0 , 128, 128);
Farbe3 = new Color (130, 240, 240);
//VulcanoDesign
Rot1 = new Color (184, 52 , 33 );
Rot2 = new Color (255, 111 , 89 );
Rot3 = new Color (248, 242 , 31 );
//Eingabefeld
Grau1 = new Color (174, 177, 179);
Grau2 = new Color (162, 165, 166);
//Das Eingabefeld
eingabeFeld = new JTextArea(10,30);
add(BorderLayout.CENTER,eingabeFeld);
eingabeFeld.setBackground(Grau1);
eingabeFeld.setForeground(Color.BLACK);
eingabeFeld.addKeyListener(this);
eingabeFeld.addMouseListener(this);
//Einige Zusatz -Buttons, -TextFields, -Menüs und Sonstiges
String filename = "icon.gif";
Image image = Toolkit.getDefaultToolkit().getImage( filename );
setIconImage ( image );
Test = new Button("Writer schließen");
top.add(Test);
add(BorderLayout.SOUTH,top);
Test.setBackground(Color.lightGray);
Test.addActionListener(this);
Neu = new Button("Neu");
z.add(Neu);
add(BorderLayout.NORTH,z);
Neu.setBackground(Color.lightGray);
Neu.addActionListener(this);
About = new Button("{about}");
z.add(About);
add(BorderLayout.NORTH,z);
About.setBackground(Color.lightGray);
About.addActionListener(this);
G = new Button("GROSSE SCHRIFTGRÖSSE");
settings.add(G);
add(BorderLayout.EAST,settings);
G.setBackground(Color.lightGray);
G.addActionListener(this);
K = new Button("kleine schriftgröße");
settings.add(K);
add(BorderLayout.EAST,settings);
K.setBackground(Color.lightGray);
K.addActionListener(this);
Help = new Button("Hilfe");
settings.add(Help);
add(BorderLayout.EAST,settings);
Help.setBackground(Color.lightGray);
Help.addActionListener(this);
kursiv = new Button("K");
settings.add(kursiv);
add(BorderLayout.EAST,settings);
kursiv.setBackground(Color.lightGray);
kursiv.addActionListener(this);
eingabeFeld.setFont(new Font("Comic Sans MS", Font.ITALIC, 10));
hinweis1 = new JLabel();
hinweis1.setText("Stellen Sie die Farbe des Textfeldes ein:");
Designs.add(hinweis1);
add(BorderLayout.EAST,Designs);
hinweis1.setPreferredSize(new Dimension(250, 20));
DRot = new JButton("R");
Designs.add(DRot);
add(BorderLayout.EAST,Designs);
DRot.setBackground(Color.RED);
DRot.addActionListener(this);
DRot.setPreferredSize(new Dimension(50, 20));
DRot.setOpaque(true);
DGruen = new JButton("G");
Designs.add(DGruen);
add(BorderLayout.EAST,Designs);
DGruen.setBackground(Color.GREEN);
DGruen.addActionListener(this);
DGruen.setPreferredSize(new Dimension(50, 20));
DGruen.setOpaque(true);
DBlau = new JButton("B");
Designs.add(DBlau);
add(BorderLayout.EAST,Designs);
DBlau.setBackground(Color.BLUE);
DBlau.addActionListener(this);
DBlau.setPreferredSize(new Dimension(50, 20));
DBlau.setOpaque(true);
DGelb = new JButton("G");
Designs.add(DGelb);
add(BorderLayout.EAST,Designs);
DGelb.setBackground(Color.YELLOW);
DGelb.addActionListener(this);
DGelb.setPreferredSize(new Dimension(50, 20));
DGelb.setOpaque(true);
DRueckgaengig = new JButton("Rückgängig");
Designs.add(DRueckgaengig);
add(BorderLayout.EAST,Designs);
DRueckgaengig.setBackground(Color.lightGray);
DRueckgaengig.addActionListener(this);
DRueckgaengig.setOpaque(true);
hinweis3 = new JLabel();
hinweis3.setText("Stellen Sie die Farbe der Schrift ein:");
Designs.add(hinweis3);
add(BorderLayout.EAST,Designs);
hinweis3.setPreferredSize(new Dimension(300, 20));
DRot3 = new JButton("R");
Designs.add(DRot3);
add(BorderLayout.EAST,Designs);
DRot3.setBackground(Color.RED);
DRot3.addActionListener(this);
DRot3.setPreferredSize(new Dimension(50, 20));
DRot3.setOpaque(true);
DGruen3 = new JButton("G");
Designs.add(DGruen3);
add(BorderLayout.EAST,Designs);
DGruen3.setBackground(Color.GREEN);
DGruen3.addActionListener(this);
DGruen3.setPreferredSize(new Dimension(50, 20));
DGruen3.setOpaque(true);
DBlau3 = new JButton("B");
Designs.add(DBlau3);
add(BorderLayout.EAST,Designs);
DBlau3.setBackground(Color.BLUE);
DBlau3.addActionListener(this);
DBlau3.setPreferredSize(new Dimension(50, 20));
DBlau3.setOpaque(true);
DGelb3 = new JButton("G");
Designs.add(DGelb3);
add(BorderLayout.EAST,Designs);
DGelb3.setBackground(Color.YELLOW);
DGelb3.addActionListener(this);
DGelb3.setPreferredSize(new Dimension(50, 20));
DGelb3.setOpaque(true);
DSchwarz3 = new JButton("S");
Designs.add(DSchwarz3);
add(BorderLayout.EAST,Designs);
DSchwarz3.setBackground(Color.BLACK);
DSchwarz3.setForeground(Color.WHITE);
DSchwarz3.addActionListener(this);
DSchwarz3.setPreferredSize(new Dimension(50, 20));
DSchwarz3.setOpaque(true);
leer1 = new JLabel();
leer1.setText("_________________________");
Designs.add(leer1);
add(BorderLayout.EAST,Designs);
leer1.setForeground(Color.lightGray);
leer1.setPreferredSize(new Dimension(250, 20));
hinweis3 = new JLabel();
hinweis3.setText("Die Schriftfarbe ist schwarz.");
Designs.add(hinweis3);
add(BorderLayout.EAST,Designs);
hinweis3.setPreferredSize(new Dimension(300, 20));
designFeld= new JTextField();
designFeld.setBackground(Color.lightGray);
Designs.add(designFeld);
add(BorderLayout.EAST,Designs);
designFeld.setPreferredSize(new Dimension(20, 20));
designFeld.addKeyListener(this);
leer2 = new JLabel();
leer2.setText(" ");
Designs.add(leer2);
add(BorderLayout.EAST,Designs);
leer2.setForeground(Color.lightGray);
leer2.setPreferredSize(new Dimension(210, 20));
Frage1 = new JButton("");
Designs.add(Frage1);
add(BorderLayout.EAST,Designs);
Frage1.addActionListener(this);
Frage1.setPreferredSize(new Dimension(20, 20));
Frage1.setIcon(ques);
Frage1.setOpaque(true);
anschlaege = new JLabel();
anschlaege.setText("Anschläge");
Designs.add(anschlaege);
add(BorderLayout.EAST,Designs);
anschlaege.setForeground(Color.lightGray);
anschlaege.setPreferredSize(new Dimension(210, 140));
Rechner = new JButton("Taschenrechner...");
top.add(Rechner);
add(BorderLayout.SOUTH,top);
Rechner.addActionListener(this);
xxx = new JButton("");
xyz.add(xxx);
add(BorderLayout.SOUTH,xyz);
xxx.addActionListener(this);
xxx.setPreferredSize(new Dimension(1, 1));
xyz = new JDialog();
xyz.setVisible(true);
xyz.setSize(50,50);
//Das Menü am oberen Applikationsrand
JMenuBar hauptMenue = new JMenuBar();
JMenu menue1 = new JMenu("Datei");
JMenu menue2 = new JMenu("Programmbedienung");
JMenu menue3 = new JMenu("Hilfe");
JMenu menue4 = new JMenu("About");
JMenu menue5 = new JMenu("Erweiterte Einstellungen");
oeffnen = new JMenuItem("Öffnen");
oeffnen.setBackground(Color.GRAY);
oeffnen.setOpaque(true);
oeffnen.addActionListener(this);
menue1.add(oeffnen);
menue1.addSeparator();
ende = new JMenuItem("Ende");
ende.addActionListener(this);
menue1.add(ende);
menue2.add("Designs");
menue3.add("Hilfe im Eingabefeld");
menue3.addSeparator();
about = new JMenuItem("About");
about.addActionListener(this);
menue3.add(about);
menue3.add("FAQ");
menue3.add("Kontakt");
menue4.add("Version");
Programmierung = new JMenuItem("Programmierung");
Programmierung.addActionListener(this);
menue4.add(Programmierung);
ESchrift = new JMenuItem("Schrifteinstellungen einblenden");
ESchrift.addActionListener(this);
menue5.add(ESchrift);
EDesign = new JMenuItem("Designeinstellungen einblenden");
EDesign.addActionListener(this);
menue5.add(EDesign);
menue5.addSeparator();
Eaus = new JMenuItem("Einstellungen ausblenden");
Eaus.setBackground(Color.YELLOW);
Eaus.addActionListener(this);
menue5.add(Eaus);
hauptMenue.add(menue1);
hauptMenue.add(menue2);
hauptMenue.add(menue3);
hauptMenue.add(menue5);
}
public void preparedExit() {
if(isModified) {
int answer = JOptionPane.showConfirmDialog(this,
"Möchten Sie ungesicherte Daten vor dem Beenden noch speichern?",
"JWriter beenden",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
switch(answer) {
case JOptionPane.CANCEL_OPTION:
return; //Rückkehr ins Programm
case JOptionPane.YES_OPTION:
//Hier Methodenaufruf oder Code für Speichern einfügen.
System.out.println("Daten wurden gespeichert.");
case JOptionPane.NO_OPTION:
//hier braucht nichts stehen, das Programm wird ohne Speichern geschlossen.
}
}
System.exit(0);
}
//Die ActionListener
public void windowClosing(WindowEvent ev) {
preparedExit();
System.exit(0);
}
public void mouseEntered(MouseEvent ev) {
if (ev.getSource() == datei) {
datei.setBackground(Color.YELLOW);
speichern.setBackground(Color.RED);
}
if (ev.getSource() == speichern) {
datei.setBackground(Color.YELLOW);
speichern.setBackground(Color.RED);
}
if (ev.getSource() == eingabeFeld && gray) {
eingabeFeld.setBackground(Grau2);
}
}
public void mouseExited(MouseEvent ev) {
if (ev.getSource() == datei) {
datei.setBackground(Color.lightGray);
speichern.setBackground(Color.lightGray);
}
if (ev.getSource() == speichern) {
datei.setBackground(Color.lightGray);
speichern.setBackground(Color.lightGray);
}
if (ev.getSource() == eingabeFeld && gray) {
eingabeFeld.setBackground(Grau1);
}
}
public void keyReleased(KeyEvent ev)
{
isModified = true;
ergebnis = (woerter++);
{
if (ev.getKeyCode() == KeyEvent.VK_LEFT && ev.getSource() == designFeld) {
eingabeFeld.setBackground(Rot1);
setBackground(Rot2);
eingabeFeld.setForeground(Rot3);
JOptionPane.showMessageDialog(this,
"<html>[b]<u>Vulcano</u>[/b]
Sie haben das Design auf VulcanoDesign eingestellt.</html>",
"Vulcano",
JOptionPane.INFORMATION_MESSAGE);
}
if (ev.getKeyCode() == KeyEvent.VK_X && ev.getSource() == designFeld) {
JOptionPane.showMessageDialog(this,
"<html>[b]<u>Raffiniert!</u>[/b]
Sie haben das geheime Spiel freigeschaltet!!!</html>",
"SECRET",
JOptionPane.WARNING_MESSAGE);
}
}
if (ev.getKeyCode() == KeyEvent.VK_SPACE && ev.getSource() == eingabeFeld) {
try {
/* Zuerst wir eine Instanz von Writer gebildet:
sie schreibt Zeichen in eine Ausgabedatei
true: neue Daten werden angehängt!
PrintWriter:zeilenorientierte Ausgabe der Zeichen
wird vorher erzeugt
*/
ausgabeDatei = new PrintWriter (new FileWriter(dname3, false));
ausgabeDatei.print(eingabeFeld.getText() + ".txt" );
ausgabeDatei.close();
}
catch (IOException e) {
System.err.println("Dateifehler "+e.toString() );
/*-------------------------------------------------------------------
* Der Aufruf von e.toString() ist unnötig, es reicht, e aufzurufen, die
* Umwandlung passiert dann automatisch.
*-------------------------------------------------------------------
*/
System.exit(1);
}
}
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == speichern) {
try {
/* Zuerst wir eine Instanz von Writer gebildet:
sie schreibt Zeichen in eine Ausgabedatei
true: neue Daten werden angehängt!
PrintWriter:zeilenorientierte Ausgabe der Zeichen
wird vorher erzeugt
*/
ausgabeDatei = new PrintWriter (new FileWriter(datei.getText(), false));
ausgabeDatei.print(eingabeFeld.getText() + ".txt" );
ausgabeDatei.close();
}
catch (IOException e) {
System.err.println("Dateifehler "+e.toString() );
/*-------------------------------------------------------------------
* Der Aufruf von e.toString() ist unnötig, es reicht, e aufzurufen, die
* Umwandlung passiert dann automatisch.
*-------------------------------------------------------------------
*/
System.exit(1);
}
}
else if (event.getSource() == Neu) {
eingabeFeld.setText("");
}
else if (event.getSource() == Help) {
eingabeFeld.setText("JWRITER by Jan");
}
else if (event.getSource() == K) {
eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 15));
}
else if (event.getSource() == G) {
eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 20));
}
else if (event.getSource() == kursiv) {
eingabeFeld.setFont (new Font("Comic Sans MS", Font.ITALIC, 20));
}
else if (event.getSource() == ESchrift) {
setSize(900,500);
Designs.setVisible(false);
add(BorderLayout.EAST,settings);
settings.setVisible(true);
validate();
}
else if (event.getSource() == DRot) {
eingabeFeld.setBackground(Color.RED);
hinweis1.setText("Sie haben die Farbe auf Rot geändert.");
gray = false;
}
else if (event.getSource() == EDesign) {
setSize(900,500);
settings.setVisible(false);
Designs.setVisible(true);
add(BorderLayout.EAST,Designs);
validate();
}
else if (event.getSource() == Eaus) {
settings.setVisible(false);
Designs.setVisible(false);
pack();
}
else if (event.getSource() == DGruen) {
eingabeFeld.setBackground(Color.GREEN);
hinweis1.setText("Sie haben die Farbe auf Grün geändert.");
gray = false;
}
else if (event.getSource() == DBlau) {
eingabeFeld.setBackground(Color.BLUE);
hinweis1.setText("Sie haben die Farbe auf Blau geändert.");
gray = false;
}
else if (event.getSource() == DGelb) {
eingabeFeld.setBackground(Color.YELLOW);
hinweis1.setText("Sie haben die Farbe auf Gelb geändert.");
gray = false;
}
else if (event.getSource() == DRueckgaengig) {
eingabeFeld.setBackground(Grau1);
hinweis1.setText("Sie haben die Standardfarbe gewählt.");
gray = true;
}
else if (event.getSource() == DGruen3) {
eingabeFeld.setForeground(Color.GREEN);
hinweis3.setText("Sie haben die Schriftfarbe auf Grün geändert.");
}
else if (event.getSource() == DBlau3) {
eingabeFeld.setForeground(Color.BLUE);
hinweis3.setText("Sie haben die Schriftfarbe auf Blau geändert.");
}
else if (event.getSource() == DGelb3) {
eingabeFeld.setForeground(Color.YELLOW);
hinweis3.setText("Sie haben die Schriftfarbe auf Gelb geändert.");
}
else if (event.getSource() == DRot3) {
eingabeFeld.setForeground(Color.RED);
hinweis3.setText("Sie haben die Schriftfarbe auf Rot geändert.");
}
else if (event.getSource() == DSchwarz3) {
eingabeFeld.setForeground(Color.BLACK);
hinweis3.setText("Sie haben die Schriftfarbe auf Schwarz geändert.");
}
else if (event.getSource() == About) {
JOptionPane.showMessageDialog(this,
"<html>[b]JWriter Version 1.0[/b]
Programmiert von Jan</html>",
"Info",
JOptionPane.INFORMATION_MESSAGE);
}
else if (event.getSource() == Test) {
preparedExit();
}
else if (event.getSource() == ende) {
preparedExit();
}
else if (event.getSource() == Programmierung) {
JOptionPane.showMessageDialog(this,
"<html><u>Programmierung</u>
Dieses Programm wurde mit Java geschrieben.</html>",
"Programmierung",
JOptionPane.INFORMATION_MESSAGE);
}
else if (event.getSource() == Frage1) {
JOptionPane.showMessageDialog(this,
"<html>[b]<u>Designs</u>[/b]
b = blueDesign
v = vulcanoDesign
s = snowDesign
</html>",
"Designs",
JOptionPane.INFORMATION_MESSAGE);
}
else if (event.getSource() == xxx) {
JOptionPane.showMessageDialog(this,
"<html>[b]JWRITER[/b]
Anregungen: java-stylepad
Prorammierung: Luca Beurer-Kellner & Jan
Test: Luca Beurer-Kellner
</html>",
"",
JOptionPane.INFORMATION_MESSAGE);
}
else if (event.getSource() == Rechner) {
try {
Runtime.getRuntime().exec( "Calc.exe" );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void windowOpened(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
public void keyPressed(KeyEvent ev) { }
public void keyTyped(KeyEvent ev) { }
public void mousePressed(MouseEvent ev) { }
public void mouseReleased(MouseEvent ev) { }
public void mouseClicked(MouseEvent ev) { }
} // class