Ich habe ein Programm geschrieben, dass aus HTML Dateien bestimmte Daten ausliest, Daten in den Dateien verändert und am Ende alle gesammelten Daten in eine neue HTML Datei speichert.
Dabei habe ich so gut wie allen Code in eine Klasse gepackt. Nur die GUI, die aus einem JFrame und zugehörigen Buttons, Menüs etc. besteht habe ich in eine extra Klasse gepackt. Mein Vorgehen scheint mir aber nicht wirklich objektorientiert zu sein. Aber ich weiß nicht wie ich meinen Code sinnvoll in Klassen gliedern könnte.
Zur Vereinfachung poste ich hier nur ganz grundsätzlichen Code, da alles weitere zu unübersichtlich wäre. Ich bräuchte irgendwie einen Ansatz wie ich so etwas umsetzen kann ohne die Regeln des OOP zu verletzen.
Hier meine Hauptklasse
Und hier meine GUI-Klasse
Dabei habe ich so gut wie allen Code in eine Klasse gepackt. Nur die GUI, die aus einem JFrame und zugehörigen Buttons, Menüs etc. besteht habe ich in eine extra Klasse gepackt. Mein Vorgehen scheint mir aber nicht wirklich objektorientiert zu sein. Aber ich weiß nicht wie ich meinen Code sinnvoll in Klassen gliedern könnte.
Zur Vereinfachung poste ich hier nur ganz grundsätzlichen Code, da alles weitere zu unübersichtlich wäre. Ich bräuchte irgendwie einen Ansatz wie ich so etwas umsetzen kann ohne die Regeln des OOP zu verletzen.
Hier meine Hauptklasse
Java:
public class HTMLEdit {
private View view;
private ArrayList<String> daten;
public static void main(String[] args) {
new HTMLEdit();
}
public HTMLEdit() {
view = new View();
view.getOpenButton().addActionListener(e -> {
FileDialog chooser = new FileDialog(new JFrame(), "Dateien auswählen", FileDialog.LOAD);
//...
for (File file: chooser.getFiles()) {
change(file);
//... weitere Methoden um HTML zu bearbeiten
gesamtListe();
}
}
daten = new ArrayLis<String>();
}
public void change(File file) {
ArrayList<String> lines = readHTMLFile(file);
for (int i = 0; i < lines.size(); i++) {
if (lines.get(i).contains("irgendwas") {
lines.set(i, "irgendWasAnderes");
daten.add(i);
}
//...
write(file, lines);
}
}
//... Weite Methoden um HTML zu bearbeiten
public void gesamtListe() {
ArrayList<String> gesamtliste = new ArrayList<String>();
//...Mit Daten HTML Seite erstellen
writeHTMLFile(new File("URL"), gesamtliste);
}
public ArrayList<String> readHTMLFile(File file) {
//... File lesen
return lines;
}
public void writeHTMLFile(File file, ArrayList<String> content) {
//... File abspeichern
}
}
Und hier meine GUI-Klasse
Java:
public class View{
private JButton openButton;
//... Und weitere UI-Componenten
public View() {
JFrame frame = new JFrame("HTMLEdit");
frame.add(openButton);
//...
frame.setVisible(true);
}
public JButton getOpenButton() {
return openButton;
}
//... Weitere Get-Methoden für die Komponenten
}