JDialog vor Hauptfenster beim Start

Status
Nicht offen für weitere Antworten.

theuserbl

Bekanntes Mitglied
Hi!

Ich habe folgendes Problem.

Mein Programm sieht folgendrmaßen aus:

Java:
public class NeuAnfang extends JFrame implements ActionListener {
  private static JFrame rahmen;
  [...]
  private static JDialog NewProjDialog;
  private static boolean initialized;

  public void createMenu() {
    [...]
  }

  public void createToolBar() {
    [...]
  }

  public NeuAnfang() {
    super("Neues Glueck");
    if (initialized==false) {
      menueLeiste  = new JMenuBar();
      System.out.println("wurde aufgerufen");
      createMenu();
      createToolBar();
      initialized=true;
    } else {
      System.out.println("wurde schon initialisiert");
    }
  }

  public void actionPerformed(ActionEvent event) {
   [...]
    } else if ((event.getSource() == file_new) || (event.getSource() == T_New)) {
      NewProject();
   [...]
  }

  public static void NewProject() {
    NewProjDialog = new JDialog(rahmen, "neues Project");
    NewProjDialog.setSize(490,400);
    NewProjDialog.setResizable(false);
    NewProjDialog.setModal(true);
    [...]
    cancelBut = new JButton("Abbrechen");
    cancelBut.addActionListener(new NeuAnfang());
    [...]
  }

  public static void main(String[] args) {
    initialized=false;
    rahmen = new NeuAnfang();

    WindowListener l = new WindowAdapter()
    {
      public void windowClosing(WindowEvent we)
      {
        System.exit(0);
      }
    };

    rahmen.addWindowListener(l);
    rahmen.setSize(750,600);
    rahmen.setLocationRelativeTo(null);
    rahmen.setExtendedState(rahmen.MAXIMIZED_BOTH);
    rahmen.setVisible(true);
    NewProject();
  }
}

Mein Problem ist folgendes:
Indem der Aufruf "NewProject();" in main() steht, muß NewProject() static sein.
Durch das static von NewProject ergeben sich jedoch weitere Nachteile.
z.B. daß ich nicht
cancelBut.addActionListener(this);
schreiben kann, sondern
cancelBut.addActionListener(new NeuAnfang());
schreiben muß. Deshalb auch die Abfrage mit "initialized" in NeuAnfang(), da das Erzeugen des Dialogs mit jedem zusätzlichen ActionListener sonst immer langsamer wird.
Auch getClass().getResource() um Grafiken innerhalb einer jar-Datei zu laden ist bei static nicht möglich.

Lasse ich hingegen NewProject() in main() weg und schreibe es in NeuAnfang(), dann wird erst das Dialogfenster erzeugt und das Hauptfenster erscheint erst, wenn ich den Dialog geschlossen habe.
Damit direkt beim Start erst das Hauptfenster erscheint und hinterher der Dialog erscheint und über dem Hauptfenster liegt, sehe ich bisher nur die Möglichkeit NewProject() in main zu schreiben.
Doch dort gibt es das Problem mit static.

Weiß irgendjemand einen Ausweg?
 

Schandro

Top Contributor
Zuletzt bearbeitet:

chik

Gesperrter Benutzer
Indem der Aufruf "NewProject();" in main() steht, muß NewProject() static sein.
Durch das static von NewProject ergeben sich jedoch weitere Nachteile.
z.B. daß ich nicht
cancelBut.addActionListener(this);
schreiben kann, sondern
cancelBut.addActionListener(new NeuAnfang());
schreiben muß. Deshalb auch die Abfrage mit "initialized" in NeuAnfang(), da das Erzeugen des Dialogs mit jedem zusätzlichen ActionListener sonst immer langsamer wird.
Auch getClass().getResource() um Grafiken innerhalb einer jar-Datei zu laden ist bei static nicht möglich.

Lasse ich hingegen NewProject() in main() weg und schreibe es in NeuAnfang(), dann wird erst das Dialogfenster erzeugt und das Hauptfenster erscheint erst, wenn ich den Dialog geschlossen habe.
Damit direkt beim Start erst das Hauptfenster erscheint und hinterher der Dialog erscheint und über dem Hauptfenster liegt, sehe ich bisher nur die Möglichkeit NewProject() in main zu schreiben.
Doch dort gibt es das Problem mit static.
autsch eh :rolleyes: ich würd auf schandro hören :cry:
 

theuserbl

Bekanntes Mitglied
Hmm.. danke daß ihr mir geantwortet habt, aber ein Hinweis auf die Lösung hätte mir etwas mehr gefallen.

Ja, ich hatte 1992 mit GW-Basic angefangen und bin später auf QBasic gewechselt und tu mich mit der Objektorientierung etwas schwer.
Ich kenne auch die Bücher über Objektorientierung. Mit der seltsamen Vererbung, wo von Oberklassen wie Tier, Auto und so gesprochen wird und speziellere Ableitungen davon wie Pferd, Porsche und so.

Bin nun jedoch froh, daß ich nach sehr langer Zeit, wo ich Java als Plattform schon seit den Anfängen mochte, mit der Sprache aber Probleme hatte, nun doch erste Erfolge zu verzeichnen habe, daß ich es schaffe erste Java-Programme zu schreiben. :)
Denke daher, daß Learning-by-Doing scheinbar besser ist, als immer wieder Java-Bücher zu lesen, wo immer wieder das Gleiche drinsteht nur jeweils anders erzählt.

Würde mich hier jedoch trotzdem mehr über eine Antwort freuen in der Art wie:
Soetwas löst man nicht so
[Java-Schnipsel]
sondern mehr so
[Java-Schnipsel]
und das hier nicht so
[Java-Schnipsel]
sondern eher so
[Java-Schnipsel]

Stattdessen bekommen ich einen Link zu Java-Büchern, wovon ich selber einige zu Hause habe:
Jetzt lerne ich Java
Java Programmieren von Anfang an
Java HTML Skripte und Anwendungen
Java Applikationen
Java2 das Taschenbuch

Das sind die, die ich zu Hase habe. Und dann gucke ich noch hin und wieder in die HTML-Versionen der Java-Insel und dem Buch von Guido Krüger.

Doch es scheint ja irgendwie alles nicht zu helfen.


Edit:
Vergaß, daß ich auch noch diese beiden Bücher habe (wen es interessieren sollte):
Programmieren in Java
Programmieren mit Swing

Trotzdem sind mir halt prozedurale Programmiersprachen wie PureBasic etwas geläufiger. Das nicht-objektorientierte ist mehr so wie ich denke.
Bisher ist es halt so, daß das Objektorientierte mir fremd ist wie eine Fremdsprache: Man versteht einiges und kann einiges sagen, aber irgendwie ist es angenehmer und erleichternder seine Muttersprache zu sprechen.

Aber ich hoffe ja noch immer, daß es sich irgendwann mal ändern wird. :)
 
Zuletzt bearbeitet:

chik

Gesperrter Benutzer
Das Problem, weshalb du solche Antworten bekommen hast, ist eben, dass eine Frage dieser Art mindestens einmal pro Tag hier auftaucht. Und wenn man das länger beobachtet mag man nicht immer wieder die selbe Antwort geben. Lies in einem deiner Bücher das Kapitel über Objektorientierte Programmierung und den Abschnitt über das Schlüsselwort static durch, dann erledigt sich das schon.

Im übrigen bezweifel ich stark, dass das menschliche Gehirn "prozedural denkt". Zweifellos haben wir schon in der Steinzeit objektorientiert gedacht, indem wir alles, wie auch heute noch, in Entitäten, deren Klassen deren Eigenschaften und deren Fähigkeiten eingeteilt haben.
 

Paddelpirat

Bekanntes Mitglied
Am besten nicht nur die Artikel lesen, sondern auch die Beispiele dazu abtippen (nicht copy & paste). Wenn du sie ans laufen bekommen hast, kannst du damit anfangen sie leicht zu verändern oder zu erweitern. Nur so lernt man es.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
L Exception/Error auf JDialog umleiten Allgemeine Java-Themen 2
T Code durch eigenes Frame pausieren (ähnlich JDialog) Allgemeine Java-Themen 4
X Modalität von JDialog nachträglich in JFrame implementieren? Allgemeine Java-Themen 8
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
P Trotz setModal, der JDialog ist nicht modal ? Allgemeine Java-Themen 18
B gridbaglayout und modaler jdialog Allgemeine Java-Themen 7
C Speicherverbrauch von JDialog enorm Allgemeine Java-Themen 6
D Probleme mit Browserfenster und modaler JDialog Allgemeine Java-Themen 17
J JDialog Bild als Hintergrund Allgemeine Java-Themen 19
S visible prob mit JFrame und JDialog Allgemeine Java-Themen 4
G Kindfenster darf Hauptfenster nicht verlassen? Allgemeine Java-Themen 4
E Auswahlfenster vor Hauptfenster öffnen Allgemeine Java-Themen 4
Zrebna OutOfMemory-Error beim Build in der CI-Pipeline Allgemeine Java-Themen 5
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Stringmanipulationen beim Dateinamen Allgemeine Java-Themen 8
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
A Hilfe beim Verständnis Allgemeine Java-Themen 16
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
U Fehler beim Compillieren Allgemeine Java-Themen 13
B neuroph hält beim XOR lernen nicht an Allgemeine Java-Themen 13
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
J Jasper Report - seltame Meldung beim compilieren Allgemeine Java-Themen 3
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
L Compiler-Fehler Generics beim Anhängen von Predicates Allgemeine Java-Themen 1
J WARNING: An illegal reflective access operation has occurred, beim Compilieren von JasperReports, was bedeutet das ? Allgemeine Java-Themen 23
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
S Seitenausrichtung beim Drucken Allgemeine Java-Themen 1
RalleYTN Brauche Hilfe beim Run-Length-Decoding Allgemeine Java-Themen 9
R Optimierung beim Vergleichen von 2 Bildern Allgemeine Java-Themen 23
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
M Beim Öffnen Dialog Directory und Filetype definieren Allgemeine Java-Themen 2
G Problem beim GUI Allgemeine Java-Themen 9
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
J Konstruktor in JSP beim Kompilieren nicht gefunden Allgemeine Java-Themen 3
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
Fischkralle Beim Clean Coden an den Schnittstellen geschnitten. Allgemeine Java-Themen 10
H Beim Konstruktor "this" Allgemeine Java-Themen 4
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
Tacofan Sound beim öffnen der GUI Allgemeine Java-Themen 8
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
B Endlosschleife beim Verteilen von Objekten Allgemeine Java-Themen 4
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
B Fortschritt beim Schreiben einer Datei ausgeben lassen Allgemeine Java-Themen 7
J JDK installieren Das Jdk funtioniert beim Editor nicht. Allgemeine Java-Themen 3
R Verdrückt beim Sicherheitshinweis Allgemeine Java-Themen 2
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
javampir Input/Output Effizienz beim binären Lesen einer Datei Allgemeine Java-Themen 6
javampir Seltsame Lücken beim Abspielen von Sound Allgemeine Java-Themen 2
RalleYTN JAnsi Warum bleiben die Hintergrundfarben beim Reseten der Konsole? Allgemeine Java-Themen 0
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
S Verständnisproblem beim Mocking Allgemeine Java-Themen 8
W JNDI - LDAP - Probleme beim editieren von Usern Allgemeine Java-Themen 0
Athena Programm funktioniert nur beim Debugging korrekt, sonst nicht. Allgemeine Java-Themen 1
N Zahlensysteme umrechnen; Probleme beim Umwandeln Allgemeine Java-Themen 4
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
G StackoverflowError beim laden einer FXMML Datei Allgemeine Java-Themen 1
L Methoden Methode gibt mir beim verschlüsseln mit RSA 0 bytes aus ? Allgemeine Java-Themen 1
D Selenium WebDriver HtmlUnitDriver Problem beim Automatisieren Allgemeine Java-Themen 1
A Probleme beim auslesen von Quelltext (HTML) Allgemeine Java-Themen 5
D Input/Output Zeilen werden "ignoriert" beim Einlesen aus einer Textdatei Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben