MalteRoe
28-05-2006, 15:42
Hallo Leute,
ich bin leider etwas sehr aus der Übung im Programmieren,,, *ahem ja*
ich habe eine Klasse mit der ich meine GUI einen Dialog aufrufe. In diesem Dialog findet eine Auswahl statt, welche durch einen Klick auf OK bestätigt wird. An meine Auswahl aus der Combobox will ich nach dem der Dialog geschlossen ist herankommen. An meine Auswahl komme ich jedoch leider nur im Dialog. Da sie entweder noch nicht da ist oder nach dispose nicht mehr.
Der Code der den Dialog aufrufenden Klasse sieht folgendermassen aus
das ganze ist in einer Methode run()
public class OREWorklet extends BaseOREWorklet {
....
//viel Kommandozeilenkram
...
AuswahlGui a = new AuswahlGui();
a.fuelleCombomitauswahl(response.getVector());
//hier würde ich nun gerne an die aus einer Combobox bspw auslesenen Daten kommen
}
Die GUI - Klasse sieht wie folgt aus..
package ch.objeng.appl.eias.awf.worklet.ext.std.ORE;
import javax.swing.JDialog;
import javax.swing.JButton;
import javax.swing.JComboBox;
import java.util.Vector;
import java.awt.event.*;
public class AuswahlGui extends JDialog implements ActionListener{
public AuswahlGui(){
this.setLayout(null);
this.setSize(200,120);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize ();
setLocation(((screenSize.width/2)-100),((screenSize.height/2))-50);
OK_Button = new JButton("OK");
OK_Button.setBounds(30,50,140,20);
Combo = new JComboBox();
Combo.setBounds(30,10,140,20);
Combo = new JComboBox();
Combo.setBounds(30,10,140,20);
OK_Button.addActionListener(this);
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE) ;
this.setTitle("Vorschläge");
this.setResizable(false);
}
/**
* Hier wird die Combobox zur Übergabe an die AWF zurück gefüllt
*
* @param v RückgabeVector von OpenRules -- Response weitergereicht
*/
public boolean fuelleCombomitauswahl(Vector v){
System.out.println(v.size());
for (int i=0; i<v.size();i++){
if (i==0){
System.out.println("tst22");
Combo.addItem(v.firstElement());
}
if ((v.elementAt(i).toString().equals("|")&&i!=(v.size()-1)))
{
System.out.println("hierrrrrr");
Combo.addItem(v.elementAt(i+1).toString());
}
}
addComponenten();
return true;
}
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
System.out.println("angekommen");
System.out.println(event.getSource().toString());
if( event.getSource() == OK_Button ){
S_Auswahl = Combo.getSelectedItem().toString();
//setintoController and AWF
System.out.println(S_Auswahl);
//schliessen des Dialogs
//dispose();
System.out.println("test");
closeDialog();
}
}
public void addComponenten(){
this.add(OK_Button);
this.add(Combo);
//this.add(Table);
this.setVisible(true);
this.setEnabled(true);
}
public void closeDialog(){
this.setVisible(false);
this.dispose();
System.out.println("waswarasasa");
}
JButton OK_Button;
JComboBox Combo;
public String S_Auswahl;
}
ich weiss einfach nicht weiter
:(
Über Hilfe wäre ich super dankbar
Gruß
Malte
ich bin leider etwas sehr aus der Übung im Programmieren,,, *ahem ja*
ich habe eine Klasse mit der ich meine GUI einen Dialog aufrufe. In diesem Dialog findet eine Auswahl statt, welche durch einen Klick auf OK bestätigt wird. An meine Auswahl aus der Combobox will ich nach dem der Dialog geschlossen ist herankommen. An meine Auswahl komme ich jedoch leider nur im Dialog. Da sie entweder noch nicht da ist oder nach dispose nicht mehr.
Der Code der den Dialog aufrufenden Klasse sieht folgendermassen aus
das ganze ist in einer Methode run()
public class OREWorklet extends BaseOREWorklet {
....
//viel Kommandozeilenkram
...
AuswahlGui a = new AuswahlGui();
a.fuelleCombomitauswahl(response.getVector());
//hier würde ich nun gerne an die aus einer Combobox bspw auslesenen Daten kommen
}
Die GUI - Klasse sieht wie folgt aus..
package ch.objeng.appl.eias.awf.worklet.ext.std.ORE;
import javax.swing.JDialog;
import javax.swing.JButton;
import javax.swing.JComboBox;
import java.util.Vector;
import java.awt.event.*;
public class AuswahlGui extends JDialog implements ActionListener{
public AuswahlGui(){
this.setLayout(null);
this.setSize(200,120);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize ();
setLocation(((screenSize.width/2)-100),((screenSize.height/2))-50);
OK_Button = new JButton("OK");
OK_Button.setBounds(30,50,140,20);
Combo = new JComboBox();
Combo.setBounds(30,10,140,20);
Combo = new JComboBox();
Combo.setBounds(30,10,140,20);
OK_Button.addActionListener(this);
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE) ;
this.setTitle("Vorschläge");
this.setResizable(false);
}
/**
* Hier wird die Combobox zur Übergabe an die AWF zurück gefüllt
*
* @param v RückgabeVector von OpenRules -- Response weitergereicht
*/
public boolean fuelleCombomitauswahl(Vector v){
System.out.println(v.size());
for (int i=0; i<v.size();i++){
if (i==0){
System.out.println("tst22");
Combo.addItem(v.firstElement());
}
if ((v.elementAt(i).toString().equals("|")&&i!=(v.size()-1)))
{
System.out.println("hierrrrrr");
Combo.addItem(v.elementAt(i+1).toString());
}
}
addComponenten();
return true;
}
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
System.out.println("angekommen");
System.out.println(event.getSource().toString());
if( event.getSource() == OK_Button ){
S_Auswahl = Combo.getSelectedItem().toString();
//setintoController and AWF
System.out.println(S_Auswahl);
//schliessen des Dialogs
//dispose();
System.out.println("test");
closeDialog();
}
}
public void addComponenten(){
this.add(OK_Button);
this.add(Combo);
//this.add(Table);
this.setVisible(true);
this.setEnabled(true);
}
public void closeDialog(){
this.setVisible(false);
this.dispose();
System.out.println("waswarasasa");
}
JButton OK_Button;
JComboBox Combo;
public String S_Auswahl;
}
ich weiss einfach nicht weiter
:(
Über Hilfe wäre ich super dankbar
Gruß
Malte