Moin 
Also, ich habe ein kleines Problem. Mein Editor soll nach erfolgreichem Speichern von einer neuen Datei in ein Vorhandes Verzeichnis die ProjectView aktualisieren - da ja nun eine Datei mehr drin ist. Meine Fragen folgen dann nach dem Code.
Ein Ausschnitt aus meinem Code:
Ich verwende Sub-Klassen, um den Aufbau der Gui etwas übersichtlicher zu gestalten.
Nun meine Fragen:
1) Kann ich ohne die Methode getPV() auskommen, so wie es ja eigentlich auch die eigentlichen Klassen tun?
2) Wenn ich nun eine neue Datei in einem Projekt speichere, soll diese auch im "projectView" angezeigt werden. Dazu habe ich bisher eine update()-Methode implemetiert, die im Prinzip das gleiche machen soll wie der Konstruktor: anlegen der Einträge (und ggf. setzen der Eigenschaften). Aber ein repaint() bringt hier leider keinen Erfolg. Mir fehlt da irgendwie der "Sprung" von meiner projectView zum eigentlich JTree.
3) Eine generelle Frage: gibt es einen schöneren (bzw. saubereren) Weg, das zu implementieren, als ich das momentan mache? Vor allem das Ansprechen von ausserhalb der Sub-Klasse scheint mir etwas dumm gelöst (also von mir): projectView.pView.add[..] - was also vergleichbar mit einer eleganten Lösung auf Frage 1 wäre.
Hoffe auf Hilfe.
Beste Grüße,
JasonV
Also, ich habe ein kleines Problem. Mein Editor soll nach erfolgreichem Speichern von einer neuen Datei in ein Vorhandes Verzeichnis die ProjectView aktualisieren - da ja nun eine Datei mehr drin ist. Meine Fragen folgen dann nach dem Code.
Ein Ausschnitt aus meinem Code:
Code:
public class Gui extends JFrame implements ActionListener {
private ProjectView projectView = new ProjectView();
private void ClientGuiAufbau() {
[...]
JSplitPane SplitView = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, projectView.getPV(),
tEditor.getTabbedEditor());
[...]
}
public Gui() {
ClientFrame = new JFrame();
[...]
ClientGuiAufbau();
[...]
}
class ProjectView extends JTree implements MouseListener {
private JTree pView;
private DefaultMutableTreeNode root;
public JTree getPV() {
return pView;
}
public void update() {
projects = getProjectsByName();
root = new DefaultMutableTreeNode("Projekte");
for(int i=0; i<projects.length; i++) {
addNodes(projects[i][0],projects[i][1], root);
}
pView = new JTree(root);
pView.setRootVisible(false);
pView.putClientProperty("JTree.lineStyle", "Angled");
pView.addMouseListener(this);
}
public ProjectView() {
projects = getProjectsByName();
root = new DefaultMutableTreeNode("Projekte");
for(int i=0; i<projects.length; i++) {
addNodes(projects[i][0],projects[i][1], root);
}
pView = new JTree(root);
pView.setRootVisible(false);
pView.putClientProperty("JTree.lineStyle", "Angled");
pView.addMouseListener(this);
}
}
}
Nun meine Fragen:
1) Kann ich ohne die Methode getPV() auskommen, so wie es ja eigentlich auch die eigentlichen Klassen tun?
2) Wenn ich nun eine neue Datei in einem Projekt speichere, soll diese auch im "projectView" angezeigt werden. Dazu habe ich bisher eine update()-Methode implemetiert, die im Prinzip das gleiche machen soll wie der Konstruktor: anlegen der Einträge (und ggf. setzen der Eigenschaften). Aber ein repaint() bringt hier leider keinen Erfolg. Mir fehlt da irgendwie der "Sprung" von meiner projectView zum eigentlich JTree.
3) Eine generelle Frage: gibt es einen schöneren (bzw. saubereren) Weg, das zu implementieren, als ich das momentan mache? Vor allem das Ansprechen von ausserhalb der Sub-Klasse scheint mir etwas dumm gelöst (also von mir): projectView.pView.add[..] - was also vergleichbar mit einer eleganten Lösung auf Frage 1 wäre.
Hoffe auf Hilfe.
Beste Grüße,
JasonV