Hallo,
ich versuche einen Eigen Dialog zu erstellen und das Ergebnis auszuwerten.
Der Aufruf des Dialoges soll wie folgt erfolgen.
Der Dialog soll das Programm solange unterbrechen, bis im Dialog der OK oder Cancel Button gedrückt wurde.
Nach dem Schliessen des Dialoges soll der Rückgabewert ausgewertet werden.
Das passiert leider nicht.
Die main-Routine arbeitet trotz geöffneten Dialoges weiter.
Hat jemand eine Idee was ich in der Dialogklasse verändern muss?
Hier die Dialogklasse:
Für einen Hinweis wäre ich sehr dankbar.
Hinweis: Bei einem Bibliotheksbesuch habe ich in einem Javahanbuch von Dirk Louis mal ein Beispiel gefunden.
Da ging es um einen Dialog mit drei Slidern, ich glaube das Beispiel hieß Audioregler.
Leider ist die Bibliothek derzeit geschlossen.
Gruss Hein_nieH
ich versuche einen Eigen Dialog zu erstellen und das Ergebnis auszuwerten.
Der Aufruf des Dialoges soll wie folgt erfolgen.
Java:
import MyJDialog.MyInputDialog;
import MyJDialog.TestMyInputDialog;
import MyJDialog.ReturnClass;
public class MainDialog
{
public static void main (String[] arg)
{
ReturnClass ret = new ReturnClass("bla bla", "blub blub", "blobb bloob");
ret = TestMyInputDialog.showDialog("Test Input Dialog", ret);
//hier sollte eigentlich gewartet werden,
//bis im Dialog ein Button gedrueckt wurde
//PASSIERT ABEr NICHT
System.out.println( "Ergebnis " + ret.getTest1() + " -> " + ret.getTest2() + " -> " + ret.getTest3() );
}//main
}//class
Der Dialog soll das Programm solange unterbrechen, bis im Dialog der OK oder Cancel Button gedrückt wurde.
Nach dem Schliessen des Dialoges soll der Rückgabewert ausgewertet werden.
Das passiert leider nicht.
Die main-Routine arbeitet trotz geöffneten Dialoges weiter.
Hat jemand eine Idee was ich in der Dialogklasse verändern muss?
Hier die Dialogklasse:
Java:
package MyJDialog;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestMyInputDialog
{
private static ReturnClass result = null;
private static JDialog dialog;
private static JTextField txtField1,txtField2,txtField3;
private String strText1="null", strText2="null", strText3="null";
private TestMyInputDialog(String title, Object obj)
{
if (obj != null)
{
if (obj instanceof ReturnClass)
{
result=(ReturnClass)obj;
strText1 = result.getTest1();
strText2 = result.getTest2();
strText3 = result.getTest3();
}//if instanceof
}//if obj != null
//GUI bauen
dialog= new JDialog();
dialog.setTitle(title);
dialog.setSize(400, 200);
dialog.setModal(true);
//Button Panel
JPanel pnlButton=new JPanel();
JButton butCancel=new JButton("Cancel");
JButton butOK=new JButton("OK");
pnlButton.add(butCancel);
pnlButton.add(butOK);
//Text Panel
JPanel pnlText=new JPanel();
txtField1 = new JTextField(30);
txtField2 = new JTextField(30);
txtField3 = new JTextField(30);
pnlText.add(txtField1);
pnlText.add(txtField2);
pnlText.add(txtField3);
dialog.add(pnlButton, BorderLayout.SOUTH);
dialog.add(pnlText, BorderLayout.CENTER);
dialog.setVisible(true);
//Werte zuweisen
txtField1.setText(strText1);
txtField2.setText(strText2);
txtField3.setText(strText3);
butOK.addActionListener( new clsListenerOK() );
butCancel.addActionListener( new clsListenerCancel() );
}//Constructor MyInputDialog
class clsListenerOK implements ActionListener
{
@Override
public void actionPerformed(ActionEvent arg0)
{
DoButtonOK();
}//actionPerformed
}//class clsOkListener
class clsListenerCancel implements ActionListener
{
@Override
public void actionPerformed(ActionEvent arg0)
{
DoButtonCancel();
}//actionPerformed
}//class clsOkListener
private void DoButtonOK()
{
if (result==null)
{
//falls Null übergeben wurde
ReturnClass result=new ReturnClass();
}//if
result.setTest1( txtField1.getText() );
result.setTest2( txtField2.getText() );
result.setTest3( txtField3.getText() );
dialog.setVisible(false);
dialog.dispose();
}
private void DoButtonCancel()
{
dialog.setVisible(false);
dialog.dispose();
}
public static ReturnClass showDialog(String title, Object obj)
{
TestMyInputDialog dlgMy = new TestMyInputDialog(title, obj);
return result;
}//showDialog
}//class MyInputDialog
Für einen Hinweis wäre ich sehr dankbar.
Hinweis: Bei einem Bibliotheksbesuch habe ich in einem Javahanbuch von Dirk Louis mal ein Beispiel gefunden.
Da ging es um einen Dialog mit drei Slidern, ich glaube das Beispiel hieß Audioregler.
Leider ist die Bibliothek derzeit geschlossen.
Gruss Hein_nieH
Zuletzt bearbeitet: