Frage von alexG93, 42

Java möchte in der Button Event Klasse auf ein Textfield aus der main zugreifen?

static class ButtonListener implements ActionListener { 
public void actionPerformed(ActionEvent e) { 
  if(e.getSource() instanceof JButton){ 
    JButton button = (JButton) e.getSource();
    button.setText("Changed");
    txtField.setText("Changed");  <----------
 }}  
  

Nun kann ich leider das txtField aus der Main nicht public machen weil sonst ein Fehler kommt : pip4.java:19:5: error: illegal start of expression public JTextField txtField = new JTextField();

Antwort
von phigeek, 14

EigthSix sagt es richtig: Du muss eine Membervariable (oft auch Attribut genannt) in die Klasse einfügen. Damit Du eine Membervariable oder ein Attribut von einer anderen Klasse aus sehen kannst, musst Du diese entweder global halten oder registrieren. Zum Registrieren gibt es verschiedene Varianten:

Siehe S. 69 hier:

http://www.programmieraufgaben.ch/uploads/oo.pdf

Antwort
von EightSix, 15

Definier das Textfeld in der Klasse und nicht in der Merhode.

Beschäftige dich mal mit OOP Grundlagen bevor dich an GUI Programmierung wagst.

Kommentar von alexG93 ,

War mir nur nicht über meine möglichkeiten bewusst
Hab jetzt einfach alles womit ich arbeiten will dem konstruktor übergeben :)

Antwort
von ReonlomochEU, 19

static class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
  if(e.getSource() instanceof JButton){
    JButton button = (JButton) e.getSource();
    button.setText("Changed");
    txtField.setText("Changed");
}}

Kommentar von alexG93 ,

War nur ein Tippfehler habs natürlich richtig geschrieben.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten