import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import static javax.swing.JOptionPane.*;
import java.io.*;
/**
* Ein GUI wird erstellt, die es ermöglicht eine Zeichenkette dauerhaft , abzuspeichern , anzuzeigen, zu editieren und zu löschen.
* Die GUI besitzt 4 Buttons, wenn man auf einen draufdrückt, ruft er eine Methode auf , die je nach Funktion verschiede Anweisungen ausführt.
*
*
* @author Gebauer Laurenz
* @version 21.05.2012
*/
public class SSAcces extends JApplet implements ActionListener
{
//Attribute
private String []txt;
private int index;
private JButton add,delete,edit,save;
private JLabel label;
public void init(){
JPanel panel;
JPanel panella;
//Ein GridLayout wird den Applet zugewiesen
this.setLayout(new GridLayout(2,0));
//Buttons erzeugen
add= new JButton("Adden");
delete= new JButton("Delete");
edit= new JButton("Edit");
save= new JButton("Save");
//Panel , wo die Buttons eingefügt werden
panel= new JPanel();
panel.setLayout(new GridLayout(1,0));
//Panel wo ein Label eingefügt wird
panella= new JPanel();
panella.setLayout(new BorderLayout());
//Buttons Hinzufügen beim Panel
panel.add(add);
panel.add(delete);
panel.add(edit);
panel.add(save);
//String Array mit 100 Elementen erzeugen
txt= new String[100];
//Label
label= new JLabel();
panella.add(label,BorderLayout.CENTER);
//Hinzufügen der Panel zum Gridlayout
add(panel);
add(panella);
//Regrestieren beim ActionListener
add.addActionListener(this);
delete.addActionListener(this);
edit.addActionListener(this);
save.addActionListener(this);
}
/**
* Die Methode add , fügt eine Text an der gewünschten Stelle ein.
* Dieser Text wird den Label zugewiesen
*
* return: void
*/
public void add(String txt[],int index){
index=Integer.parseInt(showInputDialog("Den Index wo die Zeichenkette gespeichert werden soll")); //Einlesen des index
txt[index]=showInputDialog("Gib mir eine Zeichenkette die hinzugefügt werden soll");
label.setText(txt[index]); //Den Label wird ein Text zugewiesen
}
/**
* Die Methode delete , löscht den Text an der gewünschten Stelle.
*
* return: void
*/
public void delete(int index){
index=Integer.parseInt(showInputDialog("Gib mir den Index wo die Zeichenkette gelöscht werden soll"));
txt[index]=""; //Der Text von den gewünschten Stelle wird gelöscht
label.setText(txt[index]);
}
/**
* Die Methode edit , Bearbeitet den Text an der gewünschten Stelle
* Der bearbeitete Text wird den Label zugewiesen
*
* return: void
*/
public void edit(String txt[], int index){
index=Integer.parseInt(showInputDialog("Den Index wo die Zeichenkette bearbeitet werden soll"));
txt[index]=showInputDialog(txt[index]+" <-- Bearbeite deine Zeichkette");
label.setText(txt[index]); //Den Label wird ein Text zugewiesen
}
/**
* Die Methode save , speichert den dynamischen Array in eine Datei.
*
* return: void
*/
public void save() throws IOException{
File datei= new File("C:/Users/Laurenz/hallo.txt"); //Es wird ein Objekt namens datei von der Klasse File erstellt , in Parameter ist der Pfad wo die Datei erzeugt werden soll
datei.createNewFile();
RandomAccessFile rf = new RandomAccessFile(datei, "rws"); //Es wird ein Objekt namens rf von der Klasse RandomAccessFile erstellt , in Parameter das File Objekt, und "rw" für read & write,
for(int i=0;i<txt.length;i++) {
rf.writeChars(txt[i]); //Schreibt eine Zeichenkette zu der Datei in Form von Buchstaben.
}
rf.close(); //Schließt den RandomAccessFile und hinterlässt alle gespeichereten Daten darin
}
public void actionPerformed(ActionEvent e){
//Wenn Button "add" gedrückt wird , wird eine Zeichenkette und ein Integer eingelesen, und die add Methode aufgerufen
if(e.getSource()==add){
add(txt,index);
}
//Wenn Button "delete" gedrückt wird , wird ein Integer eingelesen, und die delete Methode aufgerufen
if(e.getSource()==delete){
delete(index);
}
//Wenn Button "edit" gedrückt wird , kann man eine Zeichenkette and gewünschter stelle bearbeiten
if(e.getSource()==edit){
edit(txt,index);
}
//Wenn Button "save" gedrückt wird , wird die Methode save aufgerufen
if(e.getSource()==save){
try {
save(); // Aufruf der "save"-Methode
} catch (IOException e1) {
e1.getCause();
}
}
}
}