Probleme mit 2 JFrames in einem Programm

Arn

Mitglied
Hallo zusammen,

Ich habe ein Problem:

Ich habe ein Haupt-Programm und ein Louncher. Im Loncher ist die Main-Methode, dort soll man wählen können ob man das Programm in einem JFrame starten will oder im Vollbildmodus mit JWindow.
Beide sind von der Realisierung der Gui so aufgebaut das die beiden Programme JPanel erweitern und die paintComponenet(Graphics g) Methode überschreiben und eine JFrame besitzen, in den sie sich beim Start vor dem setVisible() Befehl als einziger Inhalt hinzufügen. Nun das Problem:

Der Louncher läuft problemlos, wenn ich aber das Programm dadurch ausführen will indem ich einfach den Konstruktor aufrufe bleibt der JFrame vom Hauptprogramm weiß und die paintComponent Methode wird nicht ausgeführt, ich kann ihn dann auch nicht mehr schließen. Alles was nicht mit Gui zu tun hat vom Programm läuft aber im Hintergrund. Wenn ich es ohne Louncher direkt in der IDE mit dem Konstruktor starte läuft es aber problemlos.

Hier die Frage: Warum ist das so? Was kann ich machen damit es nicht mehr so ist?

Vielen Dank.
 

JavaMeister

Gesperrter Benutzer
Vielleicht daran, dass es ein Launcher sein sollte und kein Loncher? :autsch:

Mal ehrlich, wie soll man nach so einer Problembeschreibung eine fundierte Aussage treffen?

Und was sagt google dazu? :bahnhof:
 

Arn

Mitglied
Ich habe den Code hier mal als "Modell" nachgebaut (der Fehler ist aber der Gleiche).

Bei dem Nachbau ist mir aufgefallen, dass der Fehler nicht auftritt wenn man die run()-Methode weg lässt, aber genau die ist für die Funktion des Programms leider unerlässlich :(.

Ich entschuldige mich für die dürftige Beschreibung, aber das Problem bei der Problembeschreibung ist, dass ich das Problem selber nicht richtig verstehe.

Hier die Louncher-Klasse:

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

public class louncher extends JPanel implements MouseListener
{
    
    public JFrame frame;
    
    public static void main(String[]args)
    {
       new louncher();
    }

    public louncher()
    {

     frame=new JFrame("Le Louncher");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   	 frame.add(this);
     frame.setBackground(Color.orange);
     frame.addMouseListener(this);
     frame.setSize(640,500);
     frame.setResizable(false);
     
     frame.setVisible(true);
     this.run();
    }
    
    public void mouseClicked(MouseEvent e){}
	
    public void mouseEntered(MouseEvent e){}
    
    public void mouseExited(MouseEvent e){}
    
    public void mousePressed(MouseEvent e)
    {
        frame.dispose();
        new programm();
    }
    
    public void mouseReleased(MouseEvent e){}
    
     public void run()
    {
       while(frame.isVisible())
       {
        frame.repaint();
       }
    }

    public void paintComponent(Graphics g){frame.setBackground(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));g.drawString("Klick Mich!",30,30);}
}


Hier das Programm:

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

public class programm extends JPanel
{
    
    public JFrame frame;

    public programm()
    {
     this.setSize(800,800);

     frame=new JFrame("Le Programm");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   	 frame.add(this);
     frame.setBackground(Color.green);
     frame.pack();
     
     frame.setVisible(true);
     try
     {
        Thread.sleep(200);
     }catch(Exception e){}
     this.run();
    }
    
    public void run()
    {
       while(frame.isVisible())
       {
        frame.repaint();
       }
    }
    
    
    public void paintComponent(Graphics g){frame.setBackground(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));g.drawString("Hallo Welt  (Wenn sie das lesen dann ist alles in Ordnung)",30,30);}
}

Vielen Dank für die Antworten
 

dzim

Top Contributor
<besserwissermodus>
Off-Topic:

Loncher = Launcher
Louncher = Launcher

CamelCase - Klassennamen immer gross schreiben und die einzelnen Worte DieDarinEnthaltenSind auch...

Zu viele Probleme in einem Satz, das verwirrt mich... :-D

</besserwissermodus>
 

VfL_Freak

Top Contributor
Moin,

ganz verstanden, was Du da versuchst, habe ich es auch ..... :eek:

Aber hast durch Deine Methode "run" (ist übrigens nicht gut, eine eigene Funktion so zu benennen!!) eine böse Endlos-Schleife drin :
Java:
   public void run()
    {
       while(frame.isVisible())
       {
        frame.repaint();
       }
    }
==> solange der Frame sichtbar ist, wird repainted !!
Wann soll das denn enden ???:L

Überleg' Dir zudem mal, welchen Thread Du mit dem "sleep" schlafen legst !!

Gruß
Klaus
 

Arn

Mitglied
Ich Glaube (und man korrigiere mich wenn ich falsch liegen sollte) das ich das Problem gefunden und verstanden und vor allem GELÖST habe :D.

Daher folgt an dieser Stelle das in der Signatur erwähnte Dankeschön an VfL_Freak.

Der Hinweis mit dem Thread war ausschlaggebend. Der Konstruktoraufruf des Programms erfolgte auf dem "event dispatch thread" vom JFrame bzw. von java.awt.window. Dieser Thread wird allerdings beim Aufruf der dispose-Methode beendet, was der Grund dafür ist das der JFrame nicht mehr arbeiten wollte. Ich habe es nun so gelöst ,das der Mausklick den Zustand eines booleans verändert, der die run-Methode (die ich nur in dem Modell , aus Zeitgründen und Unkreativität, so genannt habe und die im echten Programm anders heißt) beendet. Hinter der while-Schleife in run() stehen nun die Befehle dispose() und der Konstruktor und es läuft. (Wie man in der API lesen kann http://docs.oracle.com/javase/6/docs/api/java/awt/doc-files/AWTThreadIssues.html#ListenersThreads)


Noch einmal vielen dank für alle Kommentare und die fleißige Unterstützung! :applaus: :toll: :applaus:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
M Probleme mit Verkleinern eines GUI AWT, Swing, JavaFX & SWT 7
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
B ImageIcon - Probleme mit dem Dateipfad AWT, Swing, JavaFX & SWT 5
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
K 2D-Grafik .GIF macht mir Probleme AWT, Swing, JavaFX & SWT 14
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
T JTable Graphik probleme AWT, Swing, JavaFX & SWT 3
H GridBagLayout macht Probleme... AWT, Swing, JavaFX & SWT 4
vandread Swing Probleme mit jTextField im zusammenspiel mit einem Einblendeffekt (inkl. KSKB) AWT, Swing, JavaFX & SWT 6
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
B Infolabel Probleme mit Paint() ? AWT, Swing, JavaFX & SWT 8
P Probleme mit setIconImage AWT, Swing, JavaFX & SWT 8
U Swing Probleme mit Asynchronen Prozessen und Swing: AWT, Swing, JavaFX & SWT 3
das-mo Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 6
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
L Probleme mit JPanel AWT, Swing, JavaFX & SWT 8
D Probleme bei Übertrag von ArrayList in Jtable AWT, Swing, JavaFX & SWT 2
G kleinere Probleme mit GUI AWT, Swing, JavaFX & SWT 2
G Mehrere Probleme mit Java's GUI AWT, Swing, JavaFX & SWT 6
M Swing Erste Schritte mit der GUI, viele Probleme AWT, Swing, JavaFX & SWT 36
J GUI-Aktualisierungs-Probleme AWT, Swing, JavaFX & SWT 4
B Performance-Probleme AWT, Swing, JavaFX & SWT 17
I Probleme if-Anweisung AWT, Swing, JavaFX & SWT 26
D Swing Probleme bei transparenten Hintergrund im JTextField AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben