Eventfunktion mit Rückgabewert???

Von: , Frage gestellt am Do, 24. Aug 2000

Hallo,

ich bin neu bei Java - und darum die für euch sicher leicht zu beantwortende Frage:

Ich habe in einer GUI die gesamte Ausgabe gepackt und die Events fange ich in anderen Klassen ab. Meine GUI besteht(bisher) nur aus einer Choice - Box und aus einem Button. In einer Extra - Klasse fange ich nun die Item-Events der Box ab. Der Button soll eine Datenbankabfrage - sprich eine grössere Berechnung starten. Dazu wird er sicherlich andere Funktionen starten - ist ja auch egal. Zurück zu meiner Frage: Ich werte ja in einer extra - Klasse die Item - events aus. Dort kommt das gewählte in eine Stringvariable. Diese benötiege ich bei der Datenbankfunktion. Das heisst ich miuss irgendwie die Variable aus der Item-Funktion zurückgeben an die Klasse mit der GUI, die wiederum die Variable an die Klasse(Funktion) mit dem entsprechenden Action - Event gibt. gibt es dazu eine Möglichkeit??? Ich würde aber gerne bei der Trennung von GUI und Anwendungssoftware bleiben, da das Programm noch wachsen soll und dies die sauberste Lösung ist...

hier mal der entsprechende Code...

main:

import java.io.*;

public class Planung
{
public static void main(String args[])
{
Startfenster_Applikation_Item application_item = new Startfenster_Applikation_Item();
Startfenster_Applikation_Action application_action = new Startfenster_Applikation_Action();
Startfenster_Applikation_Window application_window = new Startfenster_Applikation_Window();
Startfenster_GUI gui = new Startfenster_GUI (application_item, application_action, application_window);
}
}


hier die GUI - Klasse:

import java.awt.*;
import java.awt.event.*;

public class Startfenster_GUI extends Frame
{
public Startfenster_GUI(ItemListener Application_Item, ActionListener Application_Action, WindowListener Application_Window)
{

setSize(200,200);
setLocation(400,400);
setTitle("Planung der Mitarbeiter");
setLayout(null);
setBackground(Color.lightGray);
setVisible(true);

Label Label_Team=new Label("Team:");
Label_Team.setBounds(10,40,60,20);
Label_Team.setBackground(Color.gray);
add(Label_Team);

Choice Teamauswahl = new Choice();

Teamauswahl.addItemListener (Application_Item);

Teamauswahl.add("alle");
Teamauswahl.add("111");
Teamauswahl.add("131");

Teamauswahl.setBounds(100,40,60,20);
add(Teamauswahl);


Button OK = new Button("Ok");
OK.setBounds(10,150,60,20);
OK.addActionListener (Application_Action);

add(OK);


Button Abbruch = new Button("Abbruch");
Abbruch.setBounds(100,150,60,20);
Abbruch.addActionListener (Application_Action);

add(Abbruch);

addWindowListener (Application_Window);


}
}


hier die Item

import java.awt.*;
import java.awt.event.*;

class Startfenster_Applikation_Item implements ItemListener
{
public void itemStateChanged(ItemEvent i)
{
Choice choice = (Choice) i.getItemSelectable();
String Team = choice.getSelectedItem(); // Die Variable, die übergeben werden soll...
}

}


und hier die Action(Button)

import java.awt.*;
import java.awt.event.*;

class Startfenster_Applikation_Action implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
String Kommando = a.getActionCommand();
if (Kommando.equals("OK"))
{
//Berechnung folgt
// TeamVariable benötigt
}
else if (Kommando.equals("Abbruch"))
{
//Programm beenden
//setVisible(false);
//dispose();
System.exit(0);

}

}



DANKE für die Hilfe!!!

alex

0 Antworten zu dieser Frage

    Keine passende Antwort gefunden? Jetzt eigene Frage stellen!