Hi Leutz,
da ich immernoch ein Newbie bin in Punkto Java, habe ich mal wieder ein wahrscheinlich blödes Problem, aber ick hab glaub ich Kartoffeln uff de Augen. Ich weiss nich was falsch ist, kann mir jemand helfen?
Das ist meine Klasse, wo ich einen Frame mit Label, Button und Textfield habe und nun möchte ich das der User was eingibt und ich das auslese, das eingegebene.
Dazu muss ich diesen Frame aber erstmal aus einer anderen Klasse aufrufen und das tue ich so:
Nun erscheint zwar das Fenster, aber zunächst ohne Button und Label und Textfield und wenn ich also den comment auslesen kann, kann der user noch gar nix eingetragen haben. warum ist das so, dass das fenster erst nach der ganzen Sache zu sehen ist und dann auch der ActionListener angreift???? Ick versteh das nich.
Mfg
Claudia
Editiert von L-ectron-X am 09.02.1006 um 18:26 Uhr.
Code-Tags eingefügt
da ich immernoch ein Newbie bin in Punkto Java, habe ich mal wieder ein wahrscheinlich blödes Problem, aber ick hab glaub ich Kartoffeln uff de Augen. Ich weiss nich was falsch ist, kann mir jemand helfen?
Code:
import javax.swing.JFrame;
import javax.swing.*;
import de.siemens.icn.tlstat.tlstatV2.tools.Debug;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
public class JF_ChgStatusReason extends JFrame {
private JButton okay;
private JLabel name;
private JTextField Field1;
String comment;
Debug debug = new Debug(this);
public JF_ChgStatusReason(){
setSize(300,100);
setLocation(200,200);
setResizable(true);
Container c = getContentPane();
c.setLayout(new FlowLayout());
//Label for the Textfield
name= new JLabel("Reason for change Status:");
name.setSize(80,20);
name.setVisible(true);
c.add(name);
//Textfield
Field1 = new JTextField("",30);
Field1.setSize(120,40);
Field1.setVisible(true);
c.add(Field1);
// Button
okay = new JButton("OK");
okay.setSize(60,20);
okay.setVisible(true);
c.add(okay);
okay.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
commentOk(e);
}
} );
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
debug.out(4, "JF_ChgStatusReason", "Window closing called");
dispose();
}
});
setTitle("Comment");
setVisible(true);
}
// implementiere die Methode fuer das Interface ActionListener
public void commentOk(ActionEvent e) {
comment = Field1.getText();
this.dispose();
}
}
Das ist meine Klasse, wo ich einen Frame mit Label, Button und Textfield habe und nun möchte ich das der User was eingibt und ich das auslese, das eingegebene.
Dazu muss ich diesen Frame aber erstmal aus einer anderen Klasse aufrufen und das tue ich so:
Code:
void changeStatusReason() {
reason=new JF_ChgStatusReason();
comment1= reason.comment;
}
Nun erscheint zwar das Fenster, aber zunächst ohne Button und Label und Textfield und wenn ich also den comment auslesen kann, kann der user noch gar nix eingetragen haben. warum ist das so, dass das fenster erst nach der ganzen Sache zu sehen ist und dann auch der ActionListener angreift???? Ick versteh das nich.
Mfg
Claudia
Editiert von L-ectron-X am 09.02.1006 um 18:26 Uhr.
Code-Tags eingefügt