/* JWriter 1.0, made by Jan, (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 Button Help;
private Button kursiv;
private MenuItem ende;
private MenuItem ESchrift;
private MenuItem Eaus;
private MenuItem EDesign;
private Panel Designs;
private Button DRot;
private Button DGruen;
private Button DBlau;
private Button DGelb;
private Label hinweis1;
private Button DRueckgaengig;
private Label hinweis2;
private Label leer1;
private Button DRot2;
private Button DGruen2;
private Button DBlau2;
private Button DGelb2;
private Label hinweis3;
private Button DRot3;
private Button DGruen3;
private Button DBlau3;
private Button DGelb3;
private Button DSchwarz3;
private MenuItem about;
private MenuItem Programmierung;
private MenuItem oeffnen;
private boolean isModified = false;
int buchstaben;
int woerter = 0;
int dieEins = 1;
int ergebnis;
private Label hinweis4;
private TextField designFeld;
private JButton Frage1;
private Label leer2;
private ImageIcon ques;
private JLabel anschlaege;
public static void main(String [] args) {
// Die Einstellungen
Writer test = new Writer();
test.setUndecorated(false); //Einstellung, um das Windows-Fenster zu entfernen.
test.setSize(900,500);
test.setVisible(true);
test.setTitle("JWriter");
test.setBackground(Color.BLUE);
test.setForeground(Color.BLACK);
test.setLocation(0,0);
test.setCursor(HAND_CURSOR);
}
// 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 );
//Das Eingabefeld
eingabeFeld = new JTextArea(10,30);
add(BorderLayout.CENTER,eingabeFeld);
eingabeFeld.setBackground(Farbe1);
eingabeFeld.setForeground(Color.BLACK);
eingabeFeld.setFont(new Font("Comic Sans MS", Font.PLAIN, 20));
eingabeFeld.requestFocus();
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 Label();
hinweis1.setText("Stellen Sie die Farbe des Textfeldes ein:");
Designs.add(hinweis1);
add(BorderLayout.EAST,Designs);
hinweis1.setBackground(Color.BLUE);
hinweis1.setPreferredSize(new Dimension(250, 20));
DRot = new Button("R");
Designs.add(DRot);
add(BorderLayout.EAST,Designs);
DRot.setBackground(Color.RED);
DRot.addActionListener(this);
DRot.setPreferredSize(new Dimension(50, 20));
DGruen = new Button("G");
Designs.add(DGruen);
add(BorderLayout.EAST,Designs);
DGruen.setBackground(Color.GREEN);
DGruen.addActionListener(this);
DGruen.setPreferredSize(new Dimension(50, 20));
DBlau = new Button("B");
Designs.add(DBlau);
add(BorderLayout.EAST,Designs);
DBlau.setBackground(Color.BLUE);
DBlau.addActionListener(this);
DBlau.setPreferredSize(new Dimension(50, 20));
DGelb = new Button("G");
Designs.add(DGelb);
add(BorderLayout.EAST,Designs);
DGelb.setBackground(Color.YELLOW);
DGelb.addActionListener(this);
DGelb.setPreferredSize(new Dimension(50, 20));
DRueckgaengig = new Button("Rückgängig");
Designs.add(DRueckgaengig);
add(BorderLayout.EAST,Designs);
DRueckgaengig.setBackground(Color.lightGray);
DRueckgaengig.addActionListener(this);
hinweis2 = new Label();
hinweis2.setText("Stellen Sie die Farbe des Hintergrundes ein:");
Designs.add(hinweis2);
add(BorderLayout.EAST,Designs);
hinweis2.setBackground(Color.BLUE);
hinweis2.setPreferredSize(new Dimension(300, 20));
DRot2 = new Button("R");
Designs.add(DRot2);
add(BorderLayout.EAST,Designs);
DRot2.setBackground(Color.RED);
DRot2.addActionListener(this);
DRot2.setPreferredSize(new Dimension(50, 20));
DGruen2 = new Button("G");
Designs.add(DGruen2);
add(BorderLayout.EAST,Designs);
DGruen2.setBackground(Color.GREEN);
DGruen2.addActionListener(this);
DGruen2.setPreferredSize(new Dimension(50, 20));
DBlau2 = new Button("B");
Designs.add(DBlau2);
add(BorderLayout.EAST,Designs);
DBlau2.setBackground(Color.BLUE);
DBlau2.addActionListener(this);
DBlau2.setPreferredSize(new Dimension(50, 20));
DGelb2 = new Button("G");
Designs.add(DGelb2);
add(BorderLayout.EAST,Designs);
DGelb2.setBackground(Color.YELLOW);
DGelb2.addActionListener(this);
DGelb2.setPreferredSize(new Dimension(50, 20));
hinweis3 = new Label();
hinweis3.setText("Stellen Sie die Farbe der Schrift ein:");
Designs.add(hinweis3);
add(BorderLayout.EAST,Designs);
hinweis3.setBackground(Color.BLUE);
hinweis3.setPreferredSize(new Dimension(300, 20));
DRot3 = new Button("R");
Designs.add(DRot3);
add(BorderLayout.EAST,Designs);
DRot3.setBackground(Color.RED);
DRot3.addActionListener(this);
DRot3.setPreferredSize(new Dimension(50, 20));
DGruen3 = new Button("G");
Designs.add(DGruen3);
add(BorderLayout.EAST,Designs);
DGruen3.setBackground(Color.GREEN);
DGruen3.addActionListener(this);
DGruen3.setPreferredSize(new Dimension(50, 20));
DBlau3 = new Button("B");
Designs.add(DBlau3);
add(BorderLayout.EAST,Designs);
DBlau3.setBackground(Color.BLUE);
DBlau3.addActionListener(this);
DBlau3.setPreferredSize(new Dimension(50, 20));
DGelb3 = new Button("G");
Designs.add(DGelb3);
add(BorderLayout.EAST,Designs);
DGelb3.setBackground(Color.YELLOW);
DGelb3.addActionListener(this);
DGelb3.setPreferredSize(new Dimension(50, 20));
DSchwarz3 = new Button("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));
leer1 = new Label();
leer1.setText("_________________________");
Designs.add(leer1);
add(BorderLayout.EAST,Designs);
leer1.setForeground(Color.lightGray);
leer1.setBackground(Color.BLUE);
leer1.setPreferredSize(new Dimension(250, 20));
hinweis3 = new Label();
hinweis3.setText("Die Schriftfarbe ist schwarz.");
Designs.add(hinweis3);
add(BorderLayout.EAST,Designs);
hinweis3.setBackground(Color.BLUE);
hinweis3.setPreferredSize(new Dimension(300, 20));
designFeld= new TextField();
designFeld.setBackground(Color.lightGray);
Designs.add(designFeld);
add(BorderLayout.EAST,Designs);
designFeld.setPreferredSize(new Dimension(20, 20));
designFeld.addKeyListener(this);
leer2 = new Label();
leer2.setText(" ");
Designs.add(leer2);
add(BorderLayout.EAST,Designs);
leer2.setForeground(Color.lightGray);
leer2.setBackground(Color.BLUE);
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);
anschlaege = new JLabel();
anschlaege.setText("Anschläge");
Designs.add(anschlaege);
add(BorderLayout.EAST,Designs);
anschlaege.setForeground(Color.lightGray);
anschlaege.setBackground(Color.BLUE);
anschlaege.setPreferredSize(new Dimension(210, 20));
//Das Menü am oberen Applikationsrand
MenuBar hauptMenue = new MenuBar();
Menu menue1 = new Menu("Datei");
Menu menue2 = new Menu("Programmbedienung");
Menu menue3 = new Menu("Hilfe");
Menu menue4 = new Menu("About");
Menu menue5 = new Menu("Erweiterte Einstellungen");
oeffnen = new MenuItem("Öffnen");
oeffnen.addActionListener(this);
menue1.add(oeffnen);
menue1.addSeparator();
ende = new MenuItem("Ende");
ende.addActionListener(this);
menue1.add(ende);
menue2.add("Designs");
menue3.add("Hilfe im Eingabefeld");
menue3.addSeparator();
about = new MenuItem("About");
about.addActionListener(this);
menue3.add(about);
menue3.add("FAQ");
menue3.add("Kontakt");
menue4.add("Version");
Programmierung = new MenuItem("Programmierung");
Programmierung.addActionListener(this);
menue4.add(Programmierung);
ESchrift = new MenuItem("Schrifteinstellungen einblenden");
ESchrift.addActionListener(this);
menue5.add(ESchrift);
EDesign = new MenuItem("Designeinstellungen einblenden");
EDesign.addActionListener(this);
menue5.add(EDesign);
menue5.addSeparator();
Eaus = new MenuItem("Einstellungen ausblenden");
Eaus.addActionListener(this);
menue5.add(Eaus);
hauptMenue.add(menue1);
hauptMenue.add(menue2);
hauptMenue.add(menue3);
hauptMenue.add(menue5);
hauptMenue.setHelpMenu(menue4);
setMenuBar(hauptMenue);
}
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);
}
}
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);
}
}
public void keyReleased(KeyEvent ev)
{
isModified = true;
ergebnis = (woerter++);
{
if (ev.getKeyCode() == KeyEvent.VK_V && 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() );
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() );
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.");
}
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);
setSize(625,500);
}
else if (event.getSource() == DGruen) {
eingabeFeld.setBackground(Color.GREEN);
hinweis1.setText("Sie haben die Farbe auf Grün geändert.");
}
else if (event.getSource() == DBlau) {
eingabeFeld.setBackground(Color.BLUE);
hinweis1.setText("Sie haben die Farbe auf Blau geändert.");
}
else if (event.getSource() == DGelb) {
eingabeFeld.setBackground(Color.YELLOW);
hinweis1.setText("Sie haben die Farbe auf Gelb geändert.");
}
else if (event.getSource() == DRueckgaengig) {
eingabeFeld.setBackground(Farbe1);
hinweis1.setText("Sie haben die Standardfarbe gewählt.");
}
else if (event.getSource() == DGruen2) {
setBackground(Color.GREEN);
repaint();
hinweis2.setText("Sie haben die Hintergrundfarbe auf Grün geändert.");
hinweis2.setBackground(Color.GREEN);
hinweis1.setBackground(Color.GREEN);
hinweis3.setBackground(Color.GREEN);
leer1.setBackground(Color.GREEN);
}
else if (event.getSource() == DBlau2) {
setBackground(Color.BLUE);
repaint();
hinweis2.setText("Sie haben die Hintergrundfarbe auf Blau geändert.");
hinweis2.setBackground(Color.BLUE);
hinweis1.setBackground(Color.BLUE);
hinweis3.setBackground(Color.BLUE);
leer1.setBackground(Color.BLUE);
}
else if (event.getSource() == DGelb2) {
setBackground(Color.YELLOW);
repaint();
hinweis2.setText("Sie haben die Hintergrundfarbe auf Gelb geändert.");
hinweis2.setBackground(Color.YELLOW);
hinweis1.setBackground(Color.YELLOW);
hinweis3.setBackground(Color.YELLOW);
leer1.setBackground(Color.YELLOW);
}
else if (event.getSource() == DRot2) {
setBackground(Color.RED);
repaint();
hinweis2.setText("Sie haben die Hintergrundfarbe auf Rot geändert.");
hinweis2.setBackground(Color.RED);
hinweis1.setBackground(Color.RED);
hinweis3.setBackground(Color.RED);
leer1.setBackground(Color.RED);
}
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);
}
}
public void windowOpened(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
public void keyTyped(KeyEvent ev) { }
public void keyPressed(KeyEvent ev) { }
public void mousePressed(MouseEvent ev) { }
public void mouseReleased(MouseEvent ev) { }
public void mouseClicked(MouseEvent ev) { }
} // class