Erste Schritte if Abfrage von JButton in 2. Klasse

jan21

Mitglied
Ich möchte mit einer if abfrage einen Text ausgeben wenn ein JButton gedrück wird bei allen beispielen die ich gesehen habe wurde dies in einer zweiten Klasse gemacht mit diesem code habe ich es geamcht
Code:
if(ae.getSource() ==null.Montag){
menü.setLabelText(("Montag"));
}
aber bei mir steht an der oberen zeile immer: Montag cannot Be resolved or is not a field
Woran liegt das in der ersten Klasse wurde montag als JButton Bennant
 

httpdigest

Top Contributor
Java:
null.Montag
????

`null` ist ein Schlüsselwort und steht für die Nullreferenz vom Typ `java.lang.Object`.
Der Compiler meckert, dass es auf `java.lang.Object` kein Feld namens "Montag" gibt.
Du meintest sicherlich nicht `null`.
 

jan21

Mitglied
ich habe das hier bei eingesetzt weil dies als eizigers zu keinem fehler führte
Code:
Montag.addActionlistener(null);
alles andere gab nur fehler meldungen was kann ich denn da einsetzen
 
K

kneitzel

Gast
Also ist Montag ein Control und wenn Du einen ActionListener hinzufügen willst, dann solltest Du einen Action Listener hinzu fügen. Da null hinzu zu fügen bringt ja nichts.

Evtl. schaust Du Dir da einmal das Kapitel dazu im Buch "Java ist auch eine Insel" an. Die ganzen Grundlagen scheinen da zu fehlen und die solltest Du Dir einmal aneignen. Da ist das Buch garantiert besser als wenn wir hier versuchen zu raten, was Du evtl. machen wolltest ....
 

httpdigest

Top Contributor
Die Frage "was muss hier statt 'null' hin" ist auch eine denkbar schlecht formulierte Frage.
Das ist wie, wenn Leute als einzigen Text in einem Post schreiben: "Ich habe ein Problem, woran liegt es?"
 

jan21

Mitglied
das befolgen des buches sorgt beim meinem code aber gerade nur für mehr und mehr fehler mit dennen ich aber absolut nix anfangen kann
 

httpdigest

Top Contributor
LOL, was? Was für ein Buch liest du denn gerade, das dir sagt, dass du "einen vorhandenen Code" mit Fehlern anreichern sollst?
Vergiss deinen Code und fang bei Seite 1 an.
 

Robat

Top Contributor
Generell sollte man nicht mit GUI-Programmierung anfangen. Du merkst (oder solltest es anhand der Kommentare hier), dass du viele Dinge noch nicht richtig verstehst und tw. völlig unsinnige Dinge schreibst. Bring dir erstmal die Java Basics bei und schau dir dann die GUI Programmierung noch mal an.
 

jan21

Mitglied
habs wieder hin bekommen aber bin fast wieder soweit wie bevor ich gefragt habe nur kann er jatzt das al aus dem buch in der zweiten klasse nicht zu ordnen
 

jan21

Mitglied
habe jetzt das alles mit dem nill und al gelöst bekommen und habe wieder das problem das bei mir immer steht: Montag can not resolved or is not a field hat wer ne idee woran das liegen kann ?
 

httpdigest

Top Contributor
Diese Fehlermeldung kommt immer dann, wenn der Compiler eine Referenz auf einen Namen nicht auflösen kann. In deinem Fall also "Montag". Das heißt, du verwendest den Namen "Montag" hier als Member/Feld eines Typs bzw. einer Klasse, die aber kein Feld "Montag" kennt.

Tu halt was richtiges, z.B. Java Grundlagen lernen und höre endlich auf mit GUI Programmierung - wie @Robat schon sagte. Das führt sonst nur zu unendlich großem Frust. :)
 

jan21

Mitglied
Der code ist agnz oben das problem ist immer noch der Montag
Code:
package menü;

import javax.swing.*;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class menü2 {

    public static void main(String[] args)
    {
        menü2 m = new menü2();
        m.setVisible(true);

    }
private void setVisible(boolean b) {
        // TODO Auto-generated method stub
        
    }
public void actionPerformed (ActionEvent ae) {
Object al;
if(ae.getSource() == al.Montag) {
    menü.setLabelText(("Montag"));
das hier ist der c
fast die komplette zweite klasse dadrunter waren noch mal 4 if abfragen
 

jan21

Mitglied
Ich hatte mich übrigens schon mal vor ner weile durch die basics durch gelesen werde mich da aber hier nach noch mal dran setzten
 

Robat

Top Contributor
Nicht "durchlesen" sondern "verstehen"! Da ist ein himmelweiter Unterschied. So ein Buch hab ich auch in 2 Tagen gelesen aber noch lange nicht verinnerlicht. Wenn du die Basics drauf hast und dir dann noch mal anguckst was du jetzt geschrieben hast, würdest du dir vermutlich selber an den Kopf fassen.
 
K

kneitzel

Gast
Also das scheint ja wieder nur ein Ausschnitt aus dem Code gewesen zu sein, aber ich gehe mal davon aus, dass actionPerformed in der Klasse menü2 ist....

Schnelldurchlauf - extrem wichtige Punkte und bitte im Detail nachlesen und verstehen! Sonst hapert es sofort wieder!
- Erst einmal gibt es eine "übliche Schreibweise" an die man sich halten sollte. Dazu gehört die Gross/Kleinschreibung aber auch die Verwendung von Sonderzeichen. Klasse fangen mit einem Großen Buchstaben an, Variablen mit einem kleinen. Funktionen mit einem Kleinen. Sonderzeichen lassen wir in den Namen bitte weg. Also statt menü2 sollte die Klasse Menue2 heissen.
- Also generell ist es doch so, dass Java eine Typisierte Sprache ist, d.h. alle Daten haben einen bestimmten Typ.
Das kann dann entweder ein primitiver Typ sein (z.B. int) oder eben etwas, das von Object abgeleitet ist (also eine Klasse).
- Klassen erben alle von Object (Wird dann nicht angegeben) oder von einer anderen Klasse. Und Klassen implementieren Interfaces.
- Funktionen haben Parameter und Rückgabewerte (Ausnahme: Konstruktoren). Auf Grund des ersten Punktes muss hier immer ein klarer Typ angegeben werden.

Jetzt schauen wir einmal die Funktion addActionListener an. Diese wünscht sich einen ActionListener als Argument. ActionListener ist ein Interface, welches die Funktion actionPerformed vorgibt.

Also musst Du nun einen ActionListener irgendwo her bekommen. Ein Ansatz ist, dass eine Klasse (z.B. bei dir Menue2) das Interface implementiert, d.h. die Klasse bekommt die Funktion (hast Du gemacht) und es muss angegeben werden, dass die Klasse das Interface implementiert ("class Menue2 implements ActionListener").
Damit wird die Instanz von Menue2 auch ein ActionListener und Du kannst diese als Parameter verwenden, d.h. innerhalb von Menu2 Funktionen kannst Du dann addActionListener "this" übergeben.

Die andere Möglichkeit ist, dass Du eine neue, eigenständige Klasse definierst. Klassen können auch innerhalb von Klassen definiert werden (Inner Class) und das mit Klassenname oder auch ganz ohne Klassenname (Annonyme Klassen).
==> Lies dir zu den Inneren und den Anonymen Klassen etwas durch, damit du das verstanden hast!

Das findest Du auch in dem Kapitel. Da wird dann eine Variable definiert als new ActionListener() { ...}; Es wird also mit dem new Operator eine neue Instanz geschaffen von ActionListener. Von einem Interface oder einer Abstrakten Klasse (=> Nachlesen!) kann man aber keine Instanz erzeugen, da ja die Implementation der (abstrakten) Funktionen fehlt und die kann man noch nachreichen!)

Und statt sowas erst in eine Variable zu schreiben kann man das natürlich auch direkt im Aufruf durchführen:
Java:
someControl.addActionListener(new ActionListener() {
    // Implementation of required functions.
});

Und um weniger zuschreiben: Das Ganze kann man dann auch noch über Lambda Expressions vereinfachen. Dann hat man da nur noch etwas wie e -> doSomething() stehen. Aber das würde ich an Deiner Stelle erst einmal ignorieren bis Du alles Andere wirklich verstanden hast.

Und ganz wichtig: Du musst das wirklich im Detail lesen und verstehen! Ich würde Dir sogar raten, dass Du mit jedem etwas rumspielst! Beispiel: Eine Inner Class kann auf die Parent Class zugreifen! Welche Zugriffe gehen? Das muss man verstanden haben, sonst wird es schwer, dies zu nutzen! (Wobei man die ja erst einmal nicht benutzen kann. Man kann ja die eigentliche Klasse ActionListener implementieren lassen aber das kann sehr schnell unübersichtlich werden...
 

mihe7

Top Contributor
@jan21 tu Dir einen Gefallen und hör auf die Leute hier. Wer versucht, null explizit zu dereferenzieren, hat wirklich extremen Nachholbedarf. Du wirst keinen Gefallen an der Sache finden, wenn Du ständig frustriert auf den Monitor blickst und keine Ahnung davon hast, was die vielen Buchstaben und Zeichen zu bedeuten haben.

Also: nimm Dir ein Buch zur Hand und dann fängst Du mit ganz, ganz kleinen Aufgaben an. Die kannst Du abwandeln und herumexperimentieren. Dann dürfte es relativ schnell "klick" machen und Du verstehst plötzlich, warum etwas wie funktioniert. So macht die Sache dann auch Spaß.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
P Amazon SQS abfrage Java Basics - Anfänger-Themen 1
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
H Erste Schritte If Abfrage Java Basics - Anfänger-Themen 3
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
U einlesen, abfrage Java Basics - Anfänger-Themen 25
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
F Erste Schritte IF-Abfrage fehlerhaft Java Basics - Anfänger-Themen 9
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
H if-Abfrage double wert Java Basics - Anfänger-Themen 5
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
B Boolean abfrage Java Basics - Anfänger-Themen 3
D Variablen Rücksprung nach If Abfrage Java Basics - Anfänger-Themen 16
T If- Abfrage Java Basics - Anfänger-Themen 8
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
D if-Abfrage Java Basics - Anfänger-Themen 6
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
C If abfrage zu getBackground Java Basics - Anfänger-Themen 2
T abfrage eines Integer Array s Java Basics - Anfänger-Themen 5
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
G Adminrechte abfrage Java Basics - Anfänger-Themen 5
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
R If-Abfrage, || funktioniert nicht Java Basics - Anfänger-Themen 4
S TabbedPane: nach Abfrage oldTab selektieren Java Basics - Anfänger-Themen 5
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6
C Treffer Abfrage Java Basics - Anfänger-Themen 19
M nach jar export keine db abfrage möglich Java Basics - Anfänger-Themen 2
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
J Erste Schritte Im Tante-Emma-Laden mehrere Artikel kaufen mit if-Abfrage Java Basics - Anfänger-Themen 24
I Threads If-Abfrage vor kritischem Abschnitt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben