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
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
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??
}
}
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