Hallo,
ich hänge gerade über dem Design-Pattern und weiß nicht so recht weiter. hier der code:
Von der Form her stand dies im FAQ. Ich habe ein Problem mit der Sichtbarkeit. Normalerweise müsste ich doch in der Gui mit controll.changeHersteller() auf den Controller zugreifen . Geht leider nicht, weil die Gui die Controll-Instanz nicht kennt; wie kann ich das ändern?
ich hänge gerade über dem Design-Pattern und weiß nicht so recht weiter. hier der code:
Code:
package controller;
import java.util.Observable;
import viewer.Gui;
import model.Car;
public class Controller extends Observable {
private Car car;
public Controller() {
Gui gui = new Gui();
addObserver(gui);
car = new Car();
}
public void changeHersteller(){
}
...
}
public static void main(String[] args) {
Controller controll = new Controller();
}
}
Code:
package model;
public class Car {
private String hersteller;
private String modell;
private String leistung;
private String baujahr;
public Car() {
}
public String getBaujahr() {
return baujahr;
}
public void setBaujahr(String baujahr) {
this.baujahr = baujahr;
}
}
Code:
package viewer;
import java.util.Observable;
import java.util.Observer;
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class Gui implements Observer{
private Shell shell;
private String textPuffer;
private Display display;
private Text besitzer, hersteller, modell, leistung, baujahr;
private Label lBesitzer, lHersteller, lModell, lLeistung, lBaujahr;
public Gui() {
display = new Display();
shell = new Shell(display);
shell.setText("AutoReparaturVerwaltung by Karsten Zenger");
// composite = new Composite(shell, SWT.NONE); //Zum Gruppieren nicht
// direkt auf die Shell
// Layout-Manager
GridLayout gridLayout = new GridLayout(3, true);
shell.setLayout(gridLayout);
// GridDatas erzeugen
// GridData von Buttons erzeugen
GridData ButtonsGridData = new GridData();
// GridData von TextFeld erzeugen
GridData textFieldsGridData = new GridData();
textFieldsGridData.horizontalSpan = 2;
textFieldsGridData.widthHint = 200;
// Buttons Erzeugen & Eventbehandlung implementieren
// Button "sichern" erzeugen
Button sichern = new Button(shell, SWT.PUSH);
sichern.setLayoutData(ButtonsGridData);
sichern.setText("SICHERN");
sichern.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
control.safe();
}
});
// Button "neu"
Button neu = new Button(shell, SWT.PUSH);
neu.setLayoutData(ButtonsGridData);
neu.setText("Neu");
// Button "beenden" erzeugen
Button beenden = new Button(shell, SWT.PUSH);
beenden.setLayoutData(ButtonsGridData);
beenden.setText("Beenden");
// TextFelder & Labels erzeugen
lHersteller = new Label(shell, SWT.WRAP);
lHersteller.setText("Hersteller:");
shell.open();
// Ereignisbearbeitung
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
Von der Form her stand dies im FAQ. Ich habe ein Problem mit der Sichtbarkeit. Normalerweise müsste ich doch in der Gui mit controll.changeHersteller() auf den Controller zugreifen . Geht leider nicht, weil die Gui die Controll-Instanz nicht kennt; wie kann ich das ändern?