Wie kann ich bei BlueJ einen Button einfügen?

3 Antworten

(...) oder ich hab es alles in "/* /" setzen müssen (...)

Auskommentieren muss man gar nichts. Entweder man setzt sich mit den Fehlern anständig auseinander (statt sie zu ignorieren) oder man wirft den Code, den man nicht benötigt, raus.

Ich hab aber eine Klasse , bei der ich Befehle wie ZEICHENFENSTER.gibfenster() (...)

Die ZEICHENFENSTER-Klasse wurde dir vermutlich von deinem Lehrer als einfache Schnittstelle zu Swing gegeben. Wenn man einmal nach dem Klassennamen in Verbindung mit BlueJ bei Google sucht, stößt man auf einige Einträge.

Ob es explizit eine Methode in diesem Interface gibt, um einen Button hinzuzufügen, weiß ich nicht. Dazu müsstest du dir die Klasse einmal genauer anschauen / deinen Lehrer fragen.

Nach derzeitigem Stand müsste diese Komponente also via Swing erstellt werden:

JButton startButton = new JButton("Start");
startButton.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    startYourApplication();
  }
});          

Die dazugehörigen Imports:

import javax.swing.*;
import java.awt.event.*;

Was wird gemacht?

Es wird erst ein neues JButton-Objekt mit einer entsprechenden Beschriftung angelegt und dann ein Listener an dieses angehängt, welcher künftig auf Klicks reagieren wird. Alles, was in der actionPerformed-Methode steht, wird daraufhin ausgeführt. Rufe die Methode, die deine Anwendung startet, dort auf.

Das Hinzufügen der Komponente kann das dir gegebene Interface übernehmen:

ZEICHENFENSTER.gibFenster().komponenteHinzufuegen(startButton, "rechts");

Die alternativen Argumente zu rechts werden wohl unten, oben und links sein. Vermutlich wird intern also mit dem BorderLayout gearbeitet.

PS.: Statt die Frage mit falschen Tags auszustatten, hättest du die relevanten Informationen im Fragetext anhängen sollen.

Wenn Du mit Swing arbeitest, dann must Du ein JFrame erstellen und im JFrame einen Button einfügen. Und im Anschluss dem Button eine Methode zuweisen, die beim Klick darauf ausgelöst wird.

Woher ich das weiß:Berufserfahrung

Gawithsilver 
Beitragsersteller
 06.10.2018, 10:35

ah okay danke ich versuch es nachher mal

AlexByJava  06.10.2018, 10:32

Etwa so : JFrame jframe =new JFrame("Titel"); frame.setBounds(400,400,400,400); JButton btn = new Button("Titel"); btn.setBounds(250,250,40,120); btn.setVisible(true); frame.add(btn); frame.setVisible(true);

Gawithsilver 
Beitragsersteller
 06.10.2018, 10:30

Ich hab aber eine Klasse , bei der ich Befehle wie ZEICHENFENSTER.gibfenster()zeichneRechteck(int x, int y, int hoehe, int breite); eingeben kann und dann zeichnet es mir ein Rechteck. ich muss schauen von wem das geschrieben wurde

Den Code braucht ihr für diese Frage eigentlich nicht.

Dann solltest du ggf. mal etwas genauer beschreiben, was genau bei java.swing "nicht geklappt" hat...

"Funktioniert nicht" ist verdammt nochmal keine sinnvolle Fehlerbeschreibung... Wann kapieren die Leute das endlich?!

ich hab schon einige Suchvorschläge von Google ausprobiert

Hast den Code einfach reinkopiert ohne eventuelle Abhängigkeiten o.ä. zu beachten, ne?

aber ich hab entweder Fehler angezeigt bekommen, wo zuvor keine waren

Und es ist ungeheuer wichtig, dass niemand jemals den Wortlaut der Fehlermeldungen erfährt, da er dir ansonsten evtl. bei deinem Problem helfen könnte?

oder ich hab es alles in "/* /" setzen müssen um die vielen Fehler zu entfernen

...........................

P.S.: Was genau hat diese Frage eigentlich mit den Themen JavaScript, cplusplus, CSharp und Python zu tun? -.-