Hallo,
ich möchte gerne in einem Dialog Daten eingeben lassen und in einer GUI ausgeben lassen. Mein Problem ist, dass in der GUI immer null ausgegeben wird, obwohl im Dialog ein Wert gesetzt ist, und mit System.out.println auch verifiziert wurde. Warum kann ich die gespeicherten Werte aus der Klasse TestFenster nicht auslesen bzw wie kann ich das in diesem Konstrukt bewerkstelligen?
Mein Code:
Danke & Gruss
ich möchte gerne in einem Dialog Daten eingeben lassen und in einer GUI ausgeben lassen. Mein Problem ist, dass in der GUI immer null ausgegeben wird, obwohl im Dialog ein Wert gesetzt ist, und mit System.out.println auch verifiziert wurde. Warum kann ich die gespeicherten Werte aus der Klasse TestFenster nicht auslesen bzw wie kann ich das in diesem Konstrukt bewerkstelligen?
Mein Code:
Code:
class Test extends JFrame {
JFrame frame = new JFrame("Test");
public void testWindow() {
JMenuBar menubar = new JMenuBar();
JMenu test = new JMenu("Test");
JMenuItem test2 = new JMenuItem("TestStart");
test.add(test2);
menubar.add(test);
test2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
test2ActionPerformed(frame);
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(menubar);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void test2ActionPerformed(JFrame f) {
Einstellung test = new Einstellung();
test.name();
TestFenster abfrage = new TestFenster();
f.add(abfrage);
f.validate();
}
}
public class Einstellung extends Test {
String speicher;
JLabel nameVor = new JLabel();
JTextField nameVorEingabe = new JTextField();
public void name() {
JPanel name = new JPanel();
final JDialog Eingabe = new JDialog(frame,
"Test", true);
JButton buttonOK = new JButton("OK");
nameVor.setText("Name");
nameVorEingabe.setText("Vorname");
name.add( nameVor);
name.add( nameVorEingabe);
name.add(buttonOK);
buttonOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
speicher = nameVorEingabe.getText();
Eingabe.dispose();
}
});
Eingabe.add(name);
Eingabe.setSize(400, 400);
Eingabe.setLocation(100, 100);
Eingabe.setVisible(true);
}
}
class TestFenster extends JComponent {
Einstellung einstellung = new Einstellung();
public TestFenster() {
}
public void start(JFrame f) {
setSize(400, 400);
setVisible(true);
}
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D) g;
g2D.drawString("Test2:" + einstellung.speicher,100, 100);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
paint(g);
}
}
Danke & Gruss