import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class EDITOR extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
static int breite = 410, hoehe = 400;
Container cp; //das ist die Schicht auf dem Frame, auf dem dann die Elemente angeordnet werden. //Für Swing erforderlich!
JButton oeffnen, speichern, btn_formatieren; //die Buttons zum Öffnen und Speichern
JCheckBox box_format;
JCheckBox box_format1;
JTextField tf_oeffnen, tf_speichern; //die dazugehörigen Textfelder
JTextArea ta; //das Haupttextfeld zum editieren, lesen etc.
BufferedReader in; //das Objekt, das später die Datei ausliest.
PrintWriter out; //das Objekt, das die Datei schreibt.
JFileChooser fc; //das Objekt, das für die Dateidialoge zum Öffnen und Speichern zuständig ist.
File sf; //in dieser Variable wird der Name der durch den Dateidialog zum öffnen/speichern ausgewählten Datei gespeichert.
Object knopf; //die Variable wird später im Knopfwächter verwendet und dort erklärt
public EDITOR(){
super("EDITOR"); //Überschrift und Name(der zB im TaskManager angezeigt wird) des Programmes
cp = getContentPane(); //Schicht auf der die Elemente angeordnet werden. deswegen z.B. 'cp.setLayout...'
cp.setLayout(new FlowLayout()); //Die Elemente werden nach dem FlowLayout angeordnet
cp.add(oeffnen = new JButton(" ÖFFNEN ")); //Erzeugen
oeffnen.addActionListener(new knopfwaechter()); //Listener Registrieren
cp.add(btn_formatieren = new JButton("FORMATIEREN"));
btn_formatieren.addActionListener(new knopfwaechter());
cp.add(tf_oeffnen = new JTextField(26));
cp.add(box_format = new JCheckBox("Hallo"));
cp.add(box_format1 = new JCheckBox());
tf_oeffnen.setText("[HIER KLICKEN UM EINE DATEI ZU ÖFFNEN]"); //es wird ein Text in das JTextField geschrieben
cp.add(speichern = new JButton("SPEICHERN "));
speichern.addActionListener(new knopfwaechter());
cp.add(tf_speichern = new JTextField(26));
tf_speichern.setText("[HIER KLICKEN UM EINE DATEI ZU SPEICHERN]");
cp.add(new JScrollPane(ta = new JTextArea(18,35))); //die JTextArea wird durch 'new JScrollPane()' mit Scrollbalken versehen.
fc = new JFileChooser(); //die Dateidialoge zum Öffnen und Speichern werden 'erstellt'
fc.setCurrentDirectory(new File(".")); //das Ausgangsverzeichnis der Dialoge ist das Verzeichnis in dem das Programm läuft
}
class knopfwaechter implements ActionListener {
public void actionPerformed (ActionEvent e){
knopf = e.getSource(); //knopf enthällt jetzt den Namen der Klickquelle
//------
if(knopf==btn_formatieren)
{
try {
String grundbefehl = new String();
String options;
String Datei;
// String Feuer = new String();
// Feuer = grundbefehl;
// Feuer.concat(options);
// Feuer.concat(sf);
String Pfad = "C:\\Windows";
sf.toString().replaceAll("//","///");
System.out.println(sf);
String Feuer = "start cd " + sf;
Process p = Runtime.getRuntime().exec("cmd /c" + Feuer);
try {
p.waitFor();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
System.err.println("hallo222" + e1);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
System.err.println("ichmagnimmer" + e1);
}
}
//____________
if(knopf==oeffnen){
String lesen;
if(fc.showOpenDialog(cp)==0){ //Dialog liefert 0 zurück wenn er nicht abgebrochen wurde.
ta.setText("");
sf = fc.getSelectedFile(); //der im Dialog ausgesuchte File wird gespeichert.
tf_oeffnen.setText(""+sf);
//da die folgenden Befehle schief gehen können, stehen diese in einem try, catch - Konstrukt.
try{
in = new BufferedReader(new FileReader(sf)); //Öffenen
while((lesen=in.readLine())!=null){
ta.append(lesen+"\r\n");
}
in.close(); //Datei schließen
}catch(Exception ex1){System.out.println(ex1);} //falls etwas schief gegangen ist, gibt das Programm den Grund über die Konsole aus.
}
else{
JOptionPane.showMessageDialog(cp,"Keine Datei zum Öffnen gewählt!","ÖFFNEN",JOptionPane.ERROR_MESSAGE);
}
}
if(knopf==speichern){
String schreiben;
if(fc.showSaveDialog(cp)==0){
sf = fc.getSelectedFile();
tf_speichern.setText(""+sf);
try{
out = new PrintWriter(new FileWriter(sf)); //Datei zum Schreiben öffnen
schreiben = ta.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{
JOptionPane.showMessageDialog(cp,"Keine Datei zum Speichern gewählt!","SPEICHERN",JOptionPane.ERROR_MESSAGE); // Modales Fenster
}
}
}
}
public static void main(String args[]) throws IOException{
//___________________
EDITOR f = new EDITOR();
f.setDefaultCloseOperation(EXIT_ON_CLOSE); // Schließen
f.setSize(breite,hoehe);
f.show();
}
}