G
Gast
Gast
N'Abend,
ich hab ein etwas größeres Problem, zumindest für mich als Neuling, ich hab auch schon in der API geschaut, aber so richtig find ich nichts mehr bzw. hab auch schon viel probiert, alles ohne Erfolg.
Ich habe eine GUI, darin sind Buttons enthalten. So nun möchte ich, dass auch per Menü die Steuerung, die sonst von den Buttons übernommen wird, auch von Menü über Dialoge durchgeführt werden kann. Zu dem Zweck hab ich mir die Menüzeile erstellt und in die GUI integriert und Dialoge erstellt vom Typ JOptionPane.
Und jetzt kommt das große Problem, wenn z.B. ein Button im Dialog gedrückt wird, soll genau die Aktion ausgeführt werden, die auch bei der Betätigung der Buttons erfolgt. Ich such quasi nach so einem Befwehl der an der Stelle des Dialogs sasgt, wenn der DialogButton gedrückt wurde, dass das gleichmächtig dem drücken des Buttons in der GUI ist.
Code Beispiel:
ich hab ein etwas größeres Problem, zumindest für mich als Neuling, ich hab auch schon in der API geschaut, aber so richtig find ich nichts mehr bzw. hab auch schon viel probiert, alles ohne Erfolg.
Ich habe eine GUI, darin sind Buttons enthalten. So nun möchte ich, dass auch per Menü die Steuerung, die sonst von den Buttons übernommen wird, auch von Menü über Dialoge durchgeführt werden kann. Zu dem Zweck hab ich mir die Menüzeile erstellt und in die GUI integriert und Dialoge erstellt vom Typ JOptionPane.
Und jetzt kommt das große Problem, wenn z.B. ein Button im Dialog gedrückt wird, soll genau die Aktion ausgeführt werden, die auch bei der Betätigung der Buttons erfolgt. Ich such quasi nach so einem Befwehl der an der Stelle des Dialogs sasgt, wenn der DialogButton gedrückt wurde, dass das gleichmächtig dem drücken des Buttons in der GUI ist.
Code Beispiel:
Code:
public void Messung()
{
pnlwest.removeAll();
pnlwest.add(new JLabel("Messmenü "
+ spiel.Spielers[spiel.aktuellerSpieler].getName()));
pnlwest.add(new JLabel("Punktekonto: "
+ Float.toString(spiel.Spielers[spiel.aktuellerSpieler]
.getPunktekonto())));
button1 = new JButton("Messung");
button1.addActionListener(this);
pnlwest.add(button1)
button2 = new JButton("Obeflächenbestimmung");
button2.addActionListener(this);
pnlwest.add(button2);
button3 = new JButton("Zurück ins Hauptmenü");
button3.addActionListener(this);
pnlwest.add(button3);
repaint();
validate();
void dialogNeuVersuch()
{
String optionen[] = { "Ja", "Nein", "Besser nicht" };
int g = JOptionPane.showOptionDialog( null,
"Wie viele Personen wollen spielen?", // Fragetext
"Neues Spiel", // Titel
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, // Icon
null, optionen,optionen[0] );
if ( g == JOptionPane.YES_OPTION )
{ // hierdrin soll das Progrämmchen jetzt auf button1 (aus der Methode Messung) zugreifen bzw. das
//ausführen, wie wenn er in der GUI gedrückt wurde
Messung(button1(true)); // funktioniert nicht
kaufeMessung(); // funktioniert auch leider nicht
}
if ( g == JOptionPane.NO_OPTION )
{ // hierdrin soll das Progrämmchen jetzt auf button2 (aus der Methode Messung) zugreifen bzw. das
//ausführen, wie wenn er in der GUI gedrückt wurde
}
if ( g == JOptionPane.CANCEL_OPTION )// Klartext Button "Besser nicht"
{
return;
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("Messung"))
{
pnlwest.removeAll();
if (spiel.kaufeMessung())
{
Messung();
pnlcenter.removeAll();
spielfeld();
}
else
{
TextArea info = new TextArea(
"Nicht genügend Punkte );
info.setEditable(false);
Messung();
pnlwest.add(info);
pnlwest.repaint();
pnlwest.validate();
}
}
// zugehöriger Code aus spiel//
public boolean kaufeMessung()
{
if (Spielers[aktuellerSpieler].getPunktekonto() < new Messung()
.getMesskosten())
{
System.out.println("|nicht genugend Punkte !|");
return false;
}
else
{
if (einSpielfeld[Spielers[aktuellerSpieler].getXPosition()][Spielers[aktuellerSpieler]
.getYPosition()].addEinheit(new Messung(
Spielers[aktuellerSpieler])))
{
Spielers[aktuellerSpieler]
.setPunktekonto(Spielers[aktuellerSpieler]
.getPunktekonto()
- new Messung().getMesskosten());
return true;
}
else
{
System.out.println("|Bereits voll|");
return false;
}
}
}