added velamentumJAVA to master-brach manually (teste noch rum)
This commit is contained in:
parent
396ea98d4b
commit
1645d93e22
36
Zahlenraten.java
Normal file
36
Zahlenraten.java
Normal file
@ -0,0 +1,36 @@
|
||||
import velamentum.Dialog;
|
||||
import velamentum.EingabeDialog;
|
||||
import velamentum.werkzeuge.Zufallsgenerator;
|
||||
|
||||
public class Zahlenraten {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Zufallsgenerator zufall = new Zufallsgenerator(1, 1000);
|
||||
|
||||
Dialog dialog = new Dialog("Zahlenraten", "Willkommen zum Spiel!");
|
||||
dialog.zeige();
|
||||
|
||||
dialog.zeigeNachricht("Ich habe eine Zahl zwischen 1 und 1000 gewählt. \nRaten Sie welche es ist!");
|
||||
|
||||
EingabeDialog eDialog = new EingabeDialog("Zahlenraten", "Bitte geben Sie eine Zahl zwischen 1 und 1000 ein:", true);
|
||||
//eDialog.setzeErgebnis("0");
|
||||
|
||||
int versuche = 0;
|
||||
|
||||
while(eDialog.nenneErgebnisAlsZahl() != zufall.nenneErgebnis()) {
|
||||
versuche++;
|
||||
|
||||
eDialog.zeige();
|
||||
|
||||
if(eDialog.nenneErgebnisAlsZahl() > zufall.nenneErgebnis()) {
|
||||
dialog.zeigeNachricht("Ihre Zahl war zu groß!");
|
||||
}else if(eDialog.nenneErgebnisAlsZahl() < zufall.nenneErgebnis()) {
|
||||
dialog.zeigeNachricht("Ihre Zahl war zu klein!");
|
||||
}
|
||||
}
|
||||
|
||||
dialog.zeigeNachricht("Herzlichen Glückwunsch! Sie haben die Zahl nach " + versuche + " Versuchen erraten.");
|
||||
|
||||
}
|
||||
|
||||
}
|
52
velamentum/Dialog.java
Normal file
52
velamentum/Dialog.java
Normal file
@ -0,0 +1,52 @@
|
||||
package velamentum;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
|
||||
public class Dialog {
|
||||
/**
|
||||
* Die Klasse Dialog stellt einen einfachen Dialog zur Verfuegung, der eine
|
||||
* Nachricht anzeigen kann und nach Bestätigung durch den Benutzer wieder
|
||||
* verschwindet.
|
||||
*/
|
||||
|
||||
private String titel="Titel";
|
||||
private String nachricht="Keine Nachricht eingefügt";
|
||||
|
||||
public Dialog(String pTitel, String pNachricht) {
|
||||
/**
|
||||
* Kontruktor. Initialisiert den Dialog.
|
||||
*
|
||||
* @param pTitel (String): Setzt den Titel des Dialogs
|
||||
*/
|
||||
this.titel = pTitel;
|
||||
this.nachricht = pNachricht;
|
||||
}
|
||||
|
||||
public void setzeNachricht(String pNachricht) {
|
||||
this.nachricht = pNachricht;
|
||||
}
|
||||
|
||||
public String nenneNachricht() {
|
||||
return this.nachricht;
|
||||
}
|
||||
|
||||
public void setzeTitel(String pTitel) {
|
||||
this.titel = pTitel;
|
||||
}
|
||||
|
||||
public String nenneTitel() {
|
||||
return this.titel;
|
||||
}
|
||||
|
||||
public void zeigeNachricht(String pNachricht) {
|
||||
this.nachricht = pNachricht;
|
||||
this.zeige();
|
||||
}
|
||||
|
||||
public void zeige() {
|
||||
JFrame desk = new JFrame();
|
||||
JOptionPane.showMessageDialog(desk, this.nenneNachricht(), this.nenneTitel(), JOptionPane.PLAIN_MESSAGE);
|
||||
|
||||
}
|
||||
}
|
101
velamentum/EingabeDialog.java
Normal file
101
velamentum/EingabeDialog.java
Normal file
@ -0,0 +1,101 @@
|
||||
package velamentum;
|
||||
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.text.AbstractDocument;
|
||||
import javax.swing.text.AttributeSet;
|
||||
import javax.swing.text.BadLocationException;
|
||||
import javax.swing.text.DocumentFilter;
|
||||
|
||||
|
||||
public class EingabeDialog extends Dialog{
|
||||
|
||||
private boolean nurZahlen = false;
|
||||
private boolean wertAnzeigen = false;
|
||||
private String ergebnis;
|
||||
|
||||
public EingabeDialog(String pTitel, String pNachricht) {
|
||||
super(pTitel, pNachricht);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public EingabeDialog(String pTitel, String pNachricht, boolean pNurZahlen) {
|
||||
super(pTitel, pNachricht);
|
||||
this.nurZahlen = pNurZahlen;
|
||||
}
|
||||
|
||||
public String nenneErgebnis() {
|
||||
return this.ergebnis;
|
||||
}
|
||||
|
||||
public int nenneErgebnisAlsZahl() {
|
||||
if(this.nenneErgebnis()==null) {
|
||||
return 0;
|
||||
}
|
||||
try {
|
||||
return Integer.parseInt(this.ergebnis);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Error: Ergebnis ist keine ganze Zahl");
|
||||
//return -35505;
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean nenneNurZahlen() {
|
||||
return this.nurZahlen;
|
||||
}
|
||||
|
||||
public boolean nenneWertAnzeigen() {
|
||||
return this.wertAnzeigen;
|
||||
}
|
||||
|
||||
public void setzeErgebnis(String pErgebnis) {
|
||||
this.ergebnis = pErgebnis;
|
||||
}
|
||||
|
||||
public void setzeNurZahlen(boolean pNurZahlen) {
|
||||
this.nurZahlen = pNurZahlen;
|
||||
}
|
||||
|
||||
public void setzeWertAnzeigen(boolean pWertAnzeigen) {
|
||||
this.nurZahlen = pWertAnzeigen;
|
||||
}
|
||||
|
||||
public void zeige() {
|
||||
JFrame desk = new JFrame();
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
|
||||
JLabel label = new JLabel(this.nenneNachricht());
|
||||
JTextField tf = new JTextField();
|
||||
if(this.nurZahlen) {
|
||||
((AbstractDocument) tf.getDocument()).setDocumentFilter(new DocumentFilter() {
|
||||
@Override
|
||||
public void replace(FilterBypass fb, int offset, int length, String str, AttributeSet attr)
|
||||
throws BadLocationException {
|
||||
if (!str.matches("[0-9]")) {
|
||||
super.replace(fb, offset, fb.getDocument().getLength(), "", attr);
|
||||
return;
|
||||
} else {
|
||||
super.replace(fb, offset, length, str, attr);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
panel.add(label);
|
||||
panel.add(tf);
|
||||
|
||||
int n = JOptionPane.showConfirmDialog(desk, panel, this.nenneTitel(), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
|
||||
if(n == JOptionPane.OK_OPTION) {
|
||||
this.ergebnis = tf.getText();
|
||||
}
|
||||
else {
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
65
velamentum/EingabeDialog_alt.java
Normal file
65
velamentum/EingabeDialog_alt.java
Normal file
@ -0,0 +1,65 @@
|
||||
package velamentum;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
|
||||
public class EingabeDialog_alt extends Dialog{
|
||||
|
||||
private boolean nurZahlen = false;
|
||||
private boolean wertAnzeigen = false;
|
||||
private String ergebnis;
|
||||
|
||||
public EingabeDialog_alt(String pTitel, String pNachricht) {
|
||||
super(pTitel, pNachricht);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public EingabeDialog_alt(String pTitel, String pNachricht, boolean pNurZahlen) {
|
||||
super(pTitel, pNachricht);
|
||||
this.nurZahlen = pNurZahlen;
|
||||
}
|
||||
|
||||
public String nenneErgebnis() {
|
||||
return this.ergebnis;
|
||||
}
|
||||
|
||||
public int nenneErgebnisAlsZahl() {
|
||||
if(this.nenneErgebnis()==null) {
|
||||
return 0;
|
||||
}
|
||||
try {
|
||||
return Integer.parseInt(this.ergebnis);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Error: Ergebnis ist keine ganze Zahl");
|
||||
//return -35505;
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean nenneNurZahlen() {
|
||||
return this.nurZahlen;
|
||||
}
|
||||
|
||||
public boolean nenneWertAnzeigen() {
|
||||
return this.wertAnzeigen;
|
||||
}
|
||||
|
||||
public void setzeErgebnis(String pErgebnis) {
|
||||
this.ergebnis = pErgebnis;
|
||||
}
|
||||
|
||||
public void setzeNurZahlen(boolean pNurZahlen) {
|
||||
this.nurZahlen = pNurZahlen;
|
||||
}
|
||||
|
||||
public void setzeWertAnzeigen(boolean pWertAnzeigen) {
|
||||
this.nurZahlen = pWertAnzeigen;
|
||||
}
|
||||
|
||||
public void zeige() {
|
||||
JFrame desk = new JFrame();
|
||||
this.ergebnis = (String)JOptionPane.showInputDialog(desk, this.nenneNachricht(), this.nenneTitel(), JOptionPane.PLAIN_MESSAGE, null, null, null);
|
||||
}
|
||||
}
|
81
velamentum/EntscheidungsDialog.java
Normal file
81
velamentum/EntscheidungsDialog.java
Normal file
@ -0,0 +1,81 @@
|
||||
package velamentum;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
public class EntscheidungsDialog extends Dialog {
|
||||
|
||||
private int ergebnis = 0;
|
||||
private String text1 = "Ja";
|
||||
private String text2 = "Nein";
|
||||
private String text3 = "Vielleicht";
|
||||
private boolean dreiTasten = false;
|
||||
|
||||
|
||||
public EntscheidungsDialog(String pTitel, String pNachricht) {
|
||||
super(pTitel, pNachricht);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public void setzeText1(String pText) {
|
||||
this.text1 = pText;
|
||||
}
|
||||
|
||||
public void setzeText2(String pText) {
|
||||
this.text2 = pText;
|
||||
}
|
||||
|
||||
public void setzeText3(String pText) {
|
||||
this.text3 = pText;
|
||||
}
|
||||
|
||||
public void setzeErgebnisA() {
|
||||
this.ergebnis = 1;
|
||||
}
|
||||
|
||||
public void setzeErgebnisB() {
|
||||
this.ergebnis = 2;
|
||||
}
|
||||
|
||||
public void setzeErgebnisC() {
|
||||
this.ergebnis = 3;
|
||||
}
|
||||
|
||||
public void setzeDreiTasten(boolean pDreiTasten) {
|
||||
this.dreiTasten = pDreiTasten;
|
||||
}
|
||||
|
||||
public int nenneErgebnis() {
|
||||
return this.ergebnis;
|
||||
}
|
||||
|
||||
public String nenneText1() {
|
||||
return this.text1;
|
||||
}
|
||||
|
||||
public String nenneText2() {
|
||||
return this.text2;
|
||||
}
|
||||
|
||||
public String nenneText3() {
|
||||
return this.text3;
|
||||
}
|
||||
|
||||
public boolean nenneDreiTasten() {
|
||||
return this.dreiTasten;
|
||||
}
|
||||
|
||||
public void zeige() {
|
||||
JFrame desk = new JFrame();
|
||||
if(this.dreiTasten) {
|
||||
Object[] options = {this.text1, this.text2, this.text3};
|
||||
this.ergebnis = JOptionPane.showOptionDialog(desk, this.nenneNachricht(), this.nenneTitel(), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0])+1;
|
||||
}else if(!this.dreiTasten) {
|
||||
Object[] options = {this.text1, this.text2};
|
||||
this.ergebnis = JOptionPane.showOptionDialog(desk, this.nenneNachricht(), this.nenneTitel(), JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0])+1;
|
||||
}else {
|
||||
System.out.println("Bei zeige() hat die Fallunterscheidung nicht geklappt!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
34
velamentum/PasswortDialog.java
Normal file
34
velamentum/PasswortDialog.java
Normal file
@ -0,0 +1,34 @@
|
||||
package velamentum;
|
||||
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPasswordField;
|
||||
|
||||
public class PasswortDialog extends EingabeDialog_alt{
|
||||
|
||||
public PasswortDialog(String pTitel, String pNachricht) {
|
||||
super(pTitel, pNachricht);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public void zeige() {
|
||||
|
||||
JFrame desk = new JFrame();
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
|
||||
JLabel label = new JLabel(this.nenneNachricht());
|
||||
JPasswordField pf = new JPasswordField();
|
||||
panel.add(label);
|
||||
panel.add(pf);
|
||||
int okCxl = JOptionPane.showConfirmDialog(desk, panel, this.nenneTitel(), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
|
||||
|
||||
if (okCxl == JOptionPane.OK_OPTION) {
|
||||
String password = new String(pf.getPassword());
|
||||
this.setzeErgebnis(password);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
52
velamentum/werkzeuge/Zufallsgenerator.java
Normal file
52
velamentum/werkzeuge/Zufallsgenerator.java
Normal file
@ -0,0 +1,52 @@
|
||||
package velamentum.werkzeuge;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class Zufallsgenerator {
|
||||
private int min;
|
||||
private int max;
|
||||
private int ergebnis;
|
||||
|
||||
public Zufallsgenerator(int pMin, int pMax) {
|
||||
this.min = pMin;
|
||||
this.max = pMax;
|
||||
this.ergebnis = getRandomNumberInRange(pMin, pMax);
|
||||
}
|
||||
|
||||
|
||||
public int nenneMin() {
|
||||
return min;
|
||||
}
|
||||
|
||||
public void setzeMin(int min) {
|
||||
this.min = min;
|
||||
}
|
||||
|
||||
public int nenneMax() {
|
||||
return max;
|
||||
}
|
||||
|
||||
public void setzeMax(int max) {
|
||||
this.max = max;
|
||||
}
|
||||
|
||||
public int nenneErgebnis() {
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
public void generiereErgebnis() {
|
||||
this.ergebnis = getRandomNumberInRange(nenneMin(), nenneMax());
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static int getRandomNumberInRange(int pMin, int pMax) {
|
||||
|
||||
if (pMin >= pMax) {
|
||||
throw new IllegalArgumentException("max must be greater than min");
|
||||
}
|
||||
|
||||
Random r = new Random();
|
||||
return r.nextInt((pMax - pMin) + 1) + pMin;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user