instanz von Button wird nicht erkannt!

Status
Nicht offen für weitere Antworten.

Hummer

Neues Mitglied
Ich möchte gerne ein java-programm schreiben in dem man in einer Menüleiste per Druck auf "Drucken" einen Button namens "knopf" verschwinden lässt.
Leider wird bei mir in ActionPerformed "knopf" nicht erkannt. 🙁

Code:
import java.awt.*;
import java.awt.event.*;

public class Texteingabe extends Frame implements ActionListener, WindowListener
{
  public static void main(String args[])
  {
	  Texteingabe Fenster1 = new Texteingabe();
     Fenster1.setSize(400, 300);
     Fenster1.setLocation(250, 200);
     Fenster1.setTitle("menueFenster");
     Fenster1.show();
     
    
     
     
     
   }

  public Texteingabe()
  {
	  
	     
	     
     MenuBar hauptMenue = new MenuBar();
     Menu menue1 = new Menu("datei");
     Menu menue2 = new Menu("bearbeiten");
     Menu menue3 = new Menu("ansicht");
     Menu menue4 = new Menu("hilfe");
     
     menue1.add("neu");
     menue1.add("laden...");
     menue1.add("speichern unter...");
     menue1.addSeparator();
     menue1.add("drucken...");
     menue1.addSeparator();
     menue1.add("beenden");
     menue4.add("index");
     menue4.add("ueber");
     hauptMenue.add(menue1);
     hauptMenue.add(menue2);
     hauptMenue.add(menue3);
     hauptMenue.setHelpMenu(menue4);     
     Button knopf = new Button("hallo");
     knopf.setSize(200,400);
     add(knopf);
     setMenuBar(hauptMenue);
     menue1.addActionListener(this);
     knopf.addActionListener(this);
     addWindowListener(this);
     
   }

  public void actionPerformed(ActionEvent evt)
  {
	 
     if (evt.getSource() instanceof MenuItem)
    {
       String menuAdd = evt.getActionCommand();
       if (menuAdd == "beenden") System.exit(0);
       
       if (menuAdd == "drucken") knopf.setVisible (false)   ;   
    }
   }

  public void windowClosing(WindowEvent evt)
  {
     System.exit(0);
   }

  public void windowOpened(WindowEvent evt){}
  public void windowIconified(WindowEvent evt){}
  public void windowDeiconified(WindowEvent evt){}
  public void windowClosed(WindowEvent evt){}
  public void windowActivated(WindowEvent evt){}
  public void windowDeactivated(WindowEvent evt){}
}



Ich würde mich freuen wenn Ihr mir helfen könnt, sitze gerade im Informatikunterricht und komme einfach nicht weiter 😳
 
Dein Stringvergleich in Zeile 60 bzw 62 ist nicht korrekt. Strings musst du mit Object#equals oder String#compareTo vergleichen.
 
und knopf muss als Exemplarvariable/ Klassenattribut definiert sein,
du kannst nicht wild lokale Variablen anderen Operation/ Klassen/ gar anderer Programme/ Computer referenzieren 😉
 
und knopf muss als Exemplarvariable/ Klassenattribut definiert sein,
du kannst nicht wild lokale Variablen anderen Operation/ Klassen/ gar anderer Programme/ Computer referenzieren


wie mache ich das denn?? die Variable knopf ist doch eigentlich nicht lokal, oder wie soll ich das verstehen :bahnhof:
 
Code:
public class Test
{
    private String a;

    public Test()
    {
        a = "Hello";
        String b = "World";
    }

    public void xy()
    {
        System.out.println(this.a); // klappt (auch ohne this.)
        System.out.println(b); // häh? wat is b??
    }

}
 
achso, ich verstehe.. aber public ist doch eigentlich Englisch für öffentlich, warum ist dann die Variable unter Private deklariert? 😛

vielen Dank, auf jeden Fall, ich werde es sofort ausprobieren!
 
damit sie nicht public = öffentlich ist sondern privat, geht nämlich außerhalb von Test niemanden etwas an,
und wenn doch, dann kann man ja eine get-Operation (public) schreiben
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben