Hier kommt mal der vereinfachte Code:
Der Aufruf des Dialogs erfolgt aus einem Applet mittels:
Code:
public void jButton1_actionPerformed(ActionEvent e) {
Dialog1 dlg = new Dialog1();
dlg.setVisible(true);
}
Danach erfolgt über einen Button im Dialog ein Aufruf einer Methode aus einer anderen Klasse. Hier erstmal der Code des Dialoges:
Code:
package unbenannt10;
import java.awt.BorderLayout;
import java.awt.Frame;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.*;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Dialog1 extends JDialog {
JPanel panel1 = new JPanel();
JButton jButton1 = new JButton();
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
public Dialog1() {
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(600,600);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
panel1.setLayout(null);
jButton1.setBounds(new Rectangle(272, 17, 97, 30));
jButton1.setText("Test");
jButton1.addActionListener(new Dialog1_jButton1_actionAdapter(this));
jTextField1.setBounds(new Rectangle(58, 152, 192, 26));
jTextField2.setBounds(new Rectangle(57, 197, 196, 28));
getContentPane().add(panel1);
panel1.add(jButton1, null);
panel1.add(jTextField1);
panel1.add(jTextField2);
}
public void jButton1_actionPerformed(ActionEvent e) {
Testklasse tkl = new Testklasse();
tkl.testMethode(); }
}
class Dialog1_jButton1_actionAdapter implements ActionListener {
private Dialog1 adaptee;
Dialog1_jButton1_actionAdapter(Dialog1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
Innerhalb der Methode "testMethode" erfolgt ein Kopieren eines Textfeldes in ein anderes. Hier der Code der weiteren Klasse:
Code:
package unbenannt10;
public class Testklasse {
Dialog1 dlg = new Dialog1();
public Testklasse() {
}
public void testMethode () {
String dws = dlg.jTextField1.getText();
dlg.jTextField1.setText(dws);
}
}
Ich vermute, da ich mir mit der Zeile "Dialog1 dlg = new Dialog1();" in der Testklasse, einen Zugriff auf den Dialog schaffe, dass hierbei der Konstruktor des Dialoges und alles was da zu gehört durchlaufen wird und dabei die Textfelder gelöscht werden. Angezeigt wird aber noch der richtige Text. Was mache ich denn falsch?
Lesezeichen