Einrichten der ersten arbeitsfähigen Version
This commit is contained in:
26
Kontrolleur.java
Normal file
26
Kontrolleur.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
public class Kontrolleur {
|
||||||
|
View view;
|
||||||
|
Zufallszahlengenerator zufallszahlengenerator;
|
||||||
|
|
||||||
|
public void setView(View v) {
|
||||||
|
this.view = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZufallszahlengenerator(Zufallszahlengenerator z) {
|
||||||
|
this.zufallszahlengenerator = z;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean setObergrenze(String nutzereingabe) {
|
||||||
|
if(nutzereingabe.matches("[0-9]+")) {
|
||||||
|
int nutzereingabeAlsZahl = Integer.parseInt(nutzereingabe);
|
||||||
|
this.zufallszahlengenerator.setObergrenze(nutzereingabeAlsZahl);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void weiseAnZufallszahl() {
|
||||||
|
this.zufallszahlengenerator.erzeugeNeueZufallszahl();
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Observer.java
Normal file
3
Observer.java
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
public interface Observer {
|
||||||
|
public void update();
|
||||||
|
}
|
||||||
9
Subject.java
Normal file
9
Subject.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public interface Subject {
|
||||||
|
ArrayList<Observer> observers = new ArrayList<>();
|
||||||
|
|
||||||
|
public void attach(Observer o);
|
||||||
|
public void detach(Observer o);
|
||||||
|
public void notifyObservers();
|
||||||
|
}
|
||||||
63
View.java
Normal file
63
View.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
public class View implements Observer {
|
||||||
|
Kontrolleur kontrolleur;
|
||||||
|
Zufallszahlengenerator zufallszahlengenerator;
|
||||||
|
JFrame fenster;
|
||||||
|
JButton generierKnopf;
|
||||||
|
JTextField eingabeFeld;
|
||||||
|
JLabel ausgabeFeld;
|
||||||
|
|
||||||
|
public View() {
|
||||||
|
fenster = new JFrame("Zufallswahl");
|
||||||
|
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
fenster.setSize(480,240);
|
||||||
|
|
||||||
|
eingabeFeld = new JTextField();
|
||||||
|
generierKnopf = new JButton("Generiere Zufallszahl");
|
||||||
|
ausgabeFeld = new JLabel("Willkommen beim Zufallszahlengenerator!");
|
||||||
|
|
||||||
|
registriereListener();
|
||||||
|
|
||||||
|
Container oberfläche = fenster.getContentPane();
|
||||||
|
oberfläche.add(eingabeFeld, BorderLayout.NORTH);
|
||||||
|
oberfläche.add(generierKnopf, BorderLayout.CENTER);
|
||||||
|
oberfläche.add(ausgabeFeld, BorderLayout.SOUTH);
|
||||||
|
|
||||||
|
fenster.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKontrolleur(Kontrolleur k) {
|
||||||
|
this.kontrolleur = k;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZufallszahlengenerator(Zufallszahlengenerator z) {
|
||||||
|
this.zufallszahlengenerator = z;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registriereListener() {
|
||||||
|
this.generierKnopf.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (kontrolleur.setObergrenze(eingabeFeld.getText())) {
|
||||||
|
kontrolleur.weiseAnZufallszahl();
|
||||||
|
} else {
|
||||||
|
ausgabeFeld.setText("Gib eine ganze Zahl an!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update() {
|
||||||
|
StringBuilder ausgabeText = new StringBuilder();
|
||||||
|
ausgabeText.append("Zufallszahl: ");
|
||||||
|
ausgabeText.append(this.zufallszahlengenerator.getZufallszahl());
|
||||||
|
ausgabeText.append(" | Obergrenze: ");
|
||||||
|
ausgabeText.append(this.zufallszahlengenerator.getObergrenze());
|
||||||
|
this.ausgabeFeld.setText(ausgabeText.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
41
Zufallszahlengenerator.java
Normal file
41
Zufallszahlengenerator.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
public class Zufallszahlengenerator implements Subject {
|
||||||
|
int obergrenze;
|
||||||
|
long zufallszahl;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attach(Observer o) {
|
||||||
|
this.observers.add(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void detach(Observer o) {
|
||||||
|
this.observers.remove(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyObservers() {
|
||||||
|
for (Observer observer : observers) {
|
||||||
|
observer.update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setObergrenze(int obergrenze) {
|
||||||
|
this.obergrenze = obergrenze;
|
||||||
|
notifyObservers();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getObergrenze() {
|
||||||
|
return this.obergrenze;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void erzeugeNeueZufallszahl() {
|
||||||
|
int minimum = 1;
|
||||||
|
this.zufallszahl = minimum + Math.round(Math.random() * (this.obergrenze - minimum));
|
||||||
|
notifyObservers();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getZufallszahl() {
|
||||||
|
return this.zufallszahl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
82
package.bluej
Normal file
82
package.bluej
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=View
|
||||||
|
dependency1.to=Zufallszahlengenerator
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency2.from=Kontrolleur
|
||||||
|
dependency2.to=View
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=Kontrolleur
|
||||||
|
dependency3.to=Zufallszahlengenerator
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
editor.fx.0.height=737
|
||||||
|
editor.fx.0.width=800
|
||||||
|
editor.fx.0.x=1571
|
||||||
|
editor.fx.0.y=99
|
||||||
|
objectbench.height=93
|
||||||
|
objectbench.width=1007
|
||||||
|
package.divider.horizontal=0.6
|
||||||
|
package.divider.vertical=0.8706338939197931
|
||||||
|
package.editor.height=666
|
||||||
|
package.editor.width=879
|
||||||
|
package.editor.x=1232
|
||||||
|
package.editor.y=446
|
||||||
|
package.frame.height=873
|
||||||
|
package.frame.width=1031
|
||||||
|
package.numDependencies=3
|
||||||
|
package.numTargets=7
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
project.charset=UTF-8
|
||||||
|
readme.height=60
|
||||||
|
readme.name=@README
|
||||||
|
readme.width=49
|
||||||
|
readme.x=10
|
||||||
|
readme.y=10
|
||||||
|
target1.height=70
|
||||||
|
target1.name=Kontrolleur
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=ClassTarget
|
||||||
|
target1.width=120
|
||||||
|
target1.x=450
|
||||||
|
target1.y=320
|
||||||
|
target2.height=70
|
||||||
|
target2.name=Observer
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=InterfaceTarget
|
||||||
|
target2.width=120
|
||||||
|
target2.x=360
|
||||||
|
target2.y=150
|
||||||
|
target3.height=70
|
||||||
|
target3.name=Main
|
||||||
|
target3.showInterface=false
|
||||||
|
target3.type=ClassTarget
|
||||||
|
target3.width=120
|
||||||
|
target3.x=10
|
||||||
|
target3.y=90
|
||||||
|
target4.height=70
|
||||||
|
target4.name=View
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=120
|
||||||
|
target4.x=100
|
||||||
|
target4.y=320
|
||||||
|
target5.height=70
|
||||||
|
target5.name=Zufallszahlengenerator
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=200
|
||||||
|
target5.x=230
|
||||||
|
target5.y=20
|
||||||
|
target6.height=70
|
||||||
|
target6.name=Subject
|
||||||
|
target6.showInterface=false
|
||||||
|
target6.type=InterfaceTarget
|
||||||
|
target6.width=120
|
||||||
|
target6.x=200
|
||||||
|
target6.y=150
|
||||||
|
target7.height=70
|
||||||
|
target7.name=README.md
|
||||||
|
target7.type=TextTarget
|
||||||
|
target7.width=120
|
||||||
|
target7.x=500
|
||||||
|
target7.y=20
|
||||||
Reference in New Issue
Block a user