Hallo,
ich bin absoluter Anfänger und habe schon ein Problem mit meinem ersten Programm.
Folgendes Problem:
Ich habe 2 Klassen. In Klasse 1 habe ich ein Textfeld mit dem Inhalt “hallo”, welches sich in einem Dialog befindet. Diesen Inhalt möchte ich über einen Button (btn7) in Klasse 2 auslesen. Das funktioniert auch soweit. Anschließend soll der Wert des Textfeldes neu gesetzt werden - auf “8”. Auch das funktioniert. Wie schaffe ich es aber nun, dass das Textfeld in Klasse 1 aktualisiert wird? Nachdem der Button betätigt wurde, soll sich der Wert im Textfeld von “hallo” auf “8” ändern. Ich möchte es nicht nur in der Konsole ausgeben, sondern es direkt im Dialog sehen. Geht das irgendwie?
Über Hilfe wäre ich sehr dankbar!
Klasse 1
private JTextField txtPersnr = new JTextField("hallo");
public void setTxtPersnr(JTextField neu1){
txtPersnr = neu1;}
public JTextField getTxtPersnr(){
return txtPersnr;}
public void actionPerformed(ActionEvent eingabeoeffnen) {
GridLayout gdl = new GridLayout(0,2);
JPanel pnlEingabe = new JPanel();
pnlEingabe.setBackground(Color.WHITE);
pnlEingabe.setLayout(gdl);
dlgEingabe.setTitle("Erfassung");
dlgEingabe.add(pnlEingabe);
dlgEingabe.setSize(800,800);
JTextField beschriftungDatum = new JTextField("Erfassungsdatum");
beschriftungDatum.setEditable(false);
beschriftungDatum.setBackground(Color.WHITE);
beschriftungDatum.setFont(new Font("Titel",10,15));
Date zeit = new Date();
SimpleDateFormat aktuell = new SimpleDateFormat("dd.MM.yyyy");
JFormattedTextField txtDatum = new JFormattedTextField();
txtDatum.setText(aktuell.format(zeit));
txtDatum.addMouseListener(new Kalender());
JTextField tlPersnr = new JTextField("Personalnummer");
tlPersnr.setEditable(false);
tlPersnr.setBackground(Color.WHITE);
tlPersnr.setFont(new Font("Titel",10,15));
txtPersnr.addMouseListener(new Nummernblock());
JTextField beschriftungProdDatum = new JTextField("Produktionsdatum");
beschriftungDatum.setEditable(false);
beschriftungDatum.setBackground(Color.WHITE);
beschriftungDatum.setFont(new Font("Titel",10,15));
JTextField prodDatum = new JTextField();
prodDatum.setBackground(Color.WHITE);
prodDatum.addMouseListener(new Kalender());
JTextField beschriftungAnlage = new JTextField("ANlage");
beschriftungAnlage.setEditable(false);
beschriftungAnlage.setBackground(Color.WHITE);
beschriftungAnlage.setFont(new Font("Titel",10,15));
pnlEingabe.add(beschriftungDatum);
pnlEingabe.add(txtDatum);
pnlEingabe.add(tlPersnr);
pnlEingabe.add(txtPersnr);
pnlEingabe.add(new JTextField ("Artikelnummer"));
pnlEingabe.add(new JTextField (" "));
pnlEingabe.add(new JTextField ("Arbeitsauftrag"));
pnlEingabe.add(new JTextField (" "));
pnlEingabe.add(beschriftungProdDatum);
pnlEingabe.add(prodDatum);
dlgEingabe.setVisible(true);
}
}```
Klasse 2
```public class Nummernblock extends Eingabe_oeffnen implements MouseListener {
Eingabe_oeffnen nummerObjekt = new Eingabe_oeffnen();
public void mouseClicked(MouseEvent a) {
JPanel pnlZahlenblock = new JPanel();
pnlZahlenblock.setBackground(Color.WHITE);
pnlZahlenblock.setLayout(null);
JButton btn7 = new JButton("7");
pnlZahlenblock.add(btn7);
btn7.setBounds(50,50,60,60);
btn7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource () == btn7){
System.out.println("aktueller Wert im TextFeld:" +nummerObjekt.getTxtPersnr().getText());
nummerObjekt.setTxtPersnr(new JTextField("8"));
System.out.println("neuer Wert im TextFeld:"+nummerObjekt.getTxtPersnr().getText());
JDialog dlgNummer = new JDialog();
dlgNummer.add(pnlZahlenblock);
dlgNummer.setTitle("Nummernblock");
dlgNummer.setSize(380,400);
dlgNummer.setResizable(false);
dlgNummer.setVisible(true);
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}```