Eigene MessageBox kreieren

GunGrave01

Mitglied
Hallo zusammen. Ich möchte bei manchen Abläufen eine MessageBox aufrufen welche sich nentweder nach drei sekunden selbst schliesst oder durch das Drücken der OK Taste verschwinden tut. Ich habe jetzt mittels NetBeans ein JPanel kreiert. Ich habe aber keine Ahnung wie ich diese Messagebox jetzt an unterschiedlichen Stellen des meines Codes aufrufen kann. Könnte mir eventuell jemand mal nen Tip geben.

Java:
public class CustomMsgBox extends javax.swing.JPanel {

    /** Creates new form CustomMsgBox */
    public CustomMsgBox() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        ReadSuccessfulFrame = new javax.swing.JFrame();
        OKButton = new javax.swing.JButton();
        ReadSuccessful = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();

    .
    .
    .
    .

    // Variables declaration - do not modify
    private javax.swing.JButton OKButton;
    private javax.swing.JLabel ReadSuccessful;
    private javax.swing.JFrame ReadSuccessfulFrame;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
}

Danke schon mal.

Gruß
Dennis
 

hdi

Top Contributor
Also erstmal solltest du daraus nen JDialog machen. Also nicht extends JPanel sondern extends JDialog. Dann machste ne Methode display(), die intern erst setVisible(true) macht und dann nen Timer startet, der nach 3 Sekunden ein dispose() aufruft.
 

GunGrave01

Mitglied
Hi HDI, danke für den Tip,

hab jetzt bissi was geändert,

Java:
public class CustomMsgBox extends javax.swing.JDialog {

    /** Creates new form CustomMsgBox */
    public CustomMsgBox(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    
    public void read_successful()
    {
        this.setVisible(true);
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
.
.
.

//OK pressed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    this.setVisible(false);
.
.
.
}


Ok, wollte jetzt die Methode innerhalb einer anderen Klasse aufruen mit,

CustomMsgBox.read_successful();

bekomme aber ne Fehlermeldung, "non-static method read_successful() cannot be referenced from a static context"

ne Idee was ich falsch mache?
 

hdi

Top Contributor
Diese Methode ist nicht-statisch (es fehlt das Keyword static). Das bedeutet sie ist an die Instanz gebunden, und ohne Instanz kannst du sie nicht aufrufen.

Es ist richtig, dass die Methode nicht-statisch ist. Was falsch ist ist der Aufruf.

Nicht:

Java:
CustomMsgBox.read_successful();

sondern:

Java:
CustomMsgBox box = new CustomMsgBox(myFrame, true);
box.read_successful();

Das ist eigentlich sehr basic.. Du scheinst noch Lücken in den Grundlagen zu haben.. Warum fangen alle eigentlich immer schon am zweiten Tag an irgendwelche GUIs mit MessageBox und so n Quatsch zu machen, wenn sie noch nicht mal die Bedeutung von static kennen.. :autsch: Lass dir Zeit, und bring dir erstmal die Grundlagen bei.

PS: Methodennamen schreibt man in
Code:
lowerCaseCamelCase
, also:
Code:
readSuccessful
();
 

GunGrave01

Mitglied
Hi hdi, danke.

Ich habe vorher nur C programmiert, hab jetzt ne fertige Software vom Chef vorgelegt bekommen in Java. Diese soll ich um einige Features erweitern. MÖglichst schnell und effektiv !

???:L
 

hdi

Top Contributor
MÖglichst schnell und effektiv !
Widerspruch ;)

Dann kurz Crashkurs static:

Methode ist static => Kannste aufrufen ohne Objekt, also Klassenname.methode
Methode nicht static => Kannst nur mit Objekt aufrufen: objekt.methode

in nicht-statischen Methoden hast du Zugriff auf statische und nicht-statische Variablen. In statischen Methoden nur auf statische. Nicht-statische Variablen existieren für jedes Objekt einzeln. Statische Variablen existieren genau einmal im gesamten Programm.

Du brauchst für deine Box am besten nen nicht-statischen Kontext, dann kannste nämlich mehrere Boxen (auch gleichzeitig) anzeigen. Du hast die Methode also richtig geschrieben. Nur der aufruf war halt falsch.
 

GunGrave01

Mitglied
hdi, vielen Dank, es funzt jetzt mehr oder weniger. Das mit dem Timer werd ich versuchen selbst hinzukriegen, falls ich Probleme bekomme, melde ich mich noch :)

By the way, kann ich anstatt dispose() setVisible(false) anwenden für die MessageBox?

Thanks
Dennis
 

hdi

Top Contributor
Kannst du, aber dispose() ist hier besser. Denn dispose() gibt alle Ressourcen für die MsgBox wieder frei, setVisible(false) verwendet man nur, wenn man vorhat immer wieder die selbe Box anzuzeigen. Aber du erzeugst immer eine neue Box, und solltest ordentlich "aufräumen" wenn du sie geschlossen hast -> also dispose().
 

GunGrave01

Mitglied
Kurze Anfrage. Wie ist es wenn ich mehrere MessageBoxes kreieren möchte, muss ich immer eine neue Klasse definieren für jede Box, oder kann ich alle in einer Klasse unterbrignen?

Im moment rufe ich meine MsgBox mit auf,

Java:
 public void read_successful()
    {
        this.setVisible(true);
    }

Kann ich den "this" Aufruf mit bestimmeten MsgBoxes ersetzen?

Möchte z.B. vier MsgBoxes ReadSuccessful, ReadFailed, WriteSuccessful, WriteFailed haben.

Danke
Gruß
Dennis
 

hdi

Top Contributor
this bleibt this.. Du solltest dir 4 verschiedene Instanzen erzeugen. Also 4x new MsgBox(). Die Gemeinsamkeiten aller Boxen sind über die Klasse definiert. Unterschiede zwischen den einzelnen Boxen kannst du zB über Konstruktor-Parameter festlegen, zB der Text der angezeigt werden soll etc.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
I Eigene Java Tools Nutzung Java Basics - Anfänger-Themen 6
G eigene Bibliothek einbinden Java Basics - Anfänger-Themen 1
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
A Eigene Methoden entwicken Java Basics - Anfänger-Themen 3
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
H GSON-Bibliothek für eigene Programme benutzen Java Basics - Anfänger-Themen 2
H Klassen auf eigene Klasse zugreifen Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
R eigene Graphikbedienelemente Java Basics - Anfänger-Themen 8
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
P Java 8 & Eigene Applets Java Basics - Anfänger-Themen 3
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
G eigene Bibliothek in Java importieren Java Basics - Anfänger-Themen 5
D Klassen Eigene Klasse für ArrayList Java Basics - Anfänger-Themen 6
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
P Vererbung Eigene HashMap Variante Java Basics - Anfänger-Themen 2
J Eigene Klasse für die Variablen? Java Basics - Anfänger-Themen 3
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
O Denkanstöße für eigene Konfigurations-Datei Java Basics - Anfänger-Themen 12
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C eigene Exception Java Basics - Anfänger-Themen 4
M externe JARs in die eigene JAR einbinden Java Basics - Anfänger-Themen 9
V Klassen import - einfaches Umleiten auf eigene Klassen? Java Basics - Anfänger-Themen 8
S Eigene Exception Klasse - fehlender Konstruktor mit String Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
K Klassen Eigene Exception verwenden Java Basics - Anfänger-Themen 9
J eigene packages bzw klassen verwenden Java Basics - Anfänger-Themen 25
E Eigene Stackklasse Java Basics - Anfänger-Themen 7
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
N Eigene Methoden-> Werte übergeben Java Basics - Anfänger-Themen 5
U Klassen Eigene Klassen importieren Java Basics - Anfänger-Themen 13
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
S Eigene Klassen addieren Java Basics - Anfänger-Themen 3
B OOP Eigene Objekte in Arrays zusammenfassen Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
F Klassen Eigene Klasse definieren Java Basics - Anfänger-Themen 4
S Eigene KeyEvent-Mask erstellen Java Basics - Anfänger-Themen 4
X Eigene Libary Java Basics - Anfänger-Themen 2
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
A Klassen Eigene Datenklasse - Strings mit fixer Länge Java Basics - Anfänger-Themen 2
T eigene Exception Klasse Java Basics - Anfänger-Themen 12
G Shape um eigene Achse drehen Java Basics - Anfänger-Themen 2
P Vererbung Basisklasse soll eigene Methode benutzen Java Basics - Anfänger-Themen 38
F Eigene Klasse für die Keys von HashMap Java Basics - Anfänger-Themen 5
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
G Eigene Klasse als Array, zugriff? Java Basics - Anfänger-Themen 2
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
S Eigene Stack Klasse Java Basics - Anfänger-Themen 26
D Eigene equals methode schreiben Java Basics - Anfänger-Themen 4
dataframe OOP Eigene typisierte Liste Java Basics - Anfänger-Themen 3
W GUI als eigene Klasse oder in die Startklasse? Java Basics - Anfänger-Themen 21
T Konstruktor für eigene Klasse erstellen Java Basics - Anfänger-Themen 6
H Buttonbefehle in eigene Klasse schreiben Java Basics - Anfänger-Themen 8
M Datentypen Eigene iterierbare Liste Java Basics - Anfänger-Themen 4
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
S Klassendiagramm - nur eigene Klassen? Java Basics - Anfänger-Themen 3
nrg Eigene simple List-Klasse programmieren Java Basics - Anfänger-Themen 3
C Eigene Interpreter-Programmiersprache mit Java Java Basics - Anfänger-Themen 17
B eigene Exception.... Java Basics - Anfänger-Themen 5
N Java Programm soll Datei in eigene jar schreiben Java Basics - Anfänger-Themen 13
F Eigene Exception StackTrace und Message ist leer warum??? Java Basics - Anfänger-Themen 3
M Eigene Pakete in Eclipse erstellen Java Basics - Anfänger-Themen 5
M Eigene Hash Funktion Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
H eigene Schriftarten registrieren Java Basics - Anfänger-Themen 5
Kasoki Eigene Funktionen / Commands Java Basics - Anfänger-Themen 14
M Eigene LinkedList und Nodes Java Basics - Anfänger-Themen 20
S eigene Methoden in JDialog Java Basics - Anfänger-Themen 13
K eigene Hash-Datenstruktur Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben