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