Grafik verschwindet

superping

Aktives Mitglied
Hallo zusammen!

Folgendes Problem: ich zeichne eine Linie auf einem JPanel. Funktioniert soweit. Allerdings verschwindet diese Linie bei einem Mausklick. Egal wohin ich klicke.

Hier mal der Code:

Java:
public class Main extends JFrame {

...

class Shapes extends JPanel
    {
        public void paintComponent( Graphics g )
        {
            //this.
            super.paintComponent( g ); // call superclass's paintComponent
    
            Graphics2D g2d = ( Graphics2D ) g; // cast g to Graphics2D
            g2d.setPaint( Color.BLACK );
            g2d.setStroke(new BasicStroke(1));
            g2d.draw( new Line2D.Double( 55, 85, 245, 115 ) );
            
        }
    }

...

public void kont_eur_open()
    {
        mainPane.removeAll();
        Shapes shapes_displ = new Shapes();
        shapes_displ.setBounds(0,0,250,120);
        shapes_displ.setVisible(true);
        
        mainPane.add(fGPanel_2.getJPanel());
        fGPanel_2.setJPanelConnection_2(true);
                
        Firmendaten.chart.add(shapes_displ);  /// JPanel aus externer Klasse
    }

Und hier das JPanel aus einer externen Klasse

Java:
public JXTitledPanel getJPanel()   ///////   Kontakte Detail PANEL
    {

...

cont_eur.add(chart);
chart.setBounds(50,80,250,120);
chart.setVisible(true);

Was mache ich falsch?

Vielen Dank schonmal im Voraus!
 
S

SlaterB

Gast
wofür ist denn die Methode getJPanel() im zweiten Codeblock gut?
ist das der Code zu
> mainPane.add(fGPanel_2.getJPanel());
?

dort wird etwas mit chart gemacht, welches dann für
> Firmendaten.chart.add(shapes_displ);
wichtig ist?

hmm.., ein vollständiges Testprogramm mit Übersicht was wo hingehört wäre wohl besser

nach GUI-Änderungen besser
validate();
repaint();
aufs JFrame aufrufen, wenn etwas nicht stimmt, etwa Layout, dann wird so vielleicht die Linie von Anfang an nicht mehr sichtbar sein..

besser alle GUI direkt am Anfang bauen, mit CardLayout umschalten wenn nötig
 

superping

Aktives Mitglied
Hmmm... Ein Testprogramm habe ich dafür nicht geschrieben. Kann leider auch nicht den kompletten Code posten da es zusammen >20.000Zeilen sind.

Bei validate() erscheint von Anfang an keine Linie. Wahrscheinlich dann wirklich ein Layout-Problem.

Mit der mainPane.add(fGPanel_2.getJPanel()); Methode rufe ich das JPanel aus der externen Klasse "Firmendaten" auf (siehe ergänzter Code).

Ich erzeuge in der Klasse "Firmendaten" ein JXTitledPanel in dem wiederum das JPanel "charts" eingebettet ist.

Java:
public class Main extends JFrame {
 
final Firmendaten fGPanel_2;

...
 
class Shapes extends JPanel
    {
        public void paintComponent( Graphics g )
        {
            //this.
            super.paintComponent( g ); // call superclass's paintComponent
    
            Graphics2D g2d = ( Graphics2D ) g; // cast g to Graphics2D
            g2d.setPaint( Color.BLACK );
            g2d.setStroke(new BasicStroke(1));
            g2d.draw( new Line2D.Double( 55, 85, 245, 115 ) );
            
        }
    }
 
public Main() {

mainPane = new JLayeredPane () ;
              mainPane.setBounds(0,0,1000,640);
              mainPane.setVisible(true);

              main_fenster.getContentPane().add(mainPane);
              main_fenster.setSize(1024,740);

fGPanel_2 = new Firmendaten();
...
 }

public void kont_eur_open()
    {
        mainPane.removeAll();
        Shapes shapes_displ = new Shapes();
        shapes_displ.setBounds(0,0,250,120);
        shapes_displ.setVisible(true);
        
        mainPane.add(fGPanel_2.getJPanel());
        fGPanel_2.setJPanelConnection_2(true);
                
        Firmendaten.chart.add(shapes_displ);  /// JPanel aus externer Klasse
    }

ActionListener coneur = new ActionListener() //  KONTAKTE mit CHART
     {
         public void actionPerformed(ActionEvent evt)
               {
                   kont_eur_open();
               }
     };

private void addMenuItems8(JPopupMenu popupMenu) //  Kontakte
     {
     popupMenu.add(new JMenuItem(" Kontakte Übersicht ")).addActionListener( coneur );
     }

Und hier die externe Klasse "Firmendaten".

Java:
public class Firmendaten extends JXTitledPanel {

public void setJPanelConnection_2(boolean x)
	{
		cont_eur.setVisible(x);
	}
    
    public JXTitledPanel cont_eur = null;

public JXTitledPanel getJPanel()   ///////   Kontakte Detail PANEL
    {
        if(cont_eur == null) 
        {

cont_eur = new JXTitledPanel ("Firmendaten");

            cont_eur.setLayout(null);
            cont_eur.setBounds(5,5,1008,525);

cont_eur.add(chart);
            chart.setBounds(50,80,250,120);
            chart.setBorder(Bork.select);
            chart.setVisible(true);

SwingUtilities.updateComponentTreeUI(cont_eur);
            
        }
        return cont_eur;
    }

Was genau ist mit GUI am Anfang gemeint?
 
S

SlaterB

Gast
alle JPanel usw. am Anfang erstellen, mit add() zusammenfügen, mit CardLayout kann man wechseln

hat 'chart' eigentlich Null-Layout? wenn nicht, dann bräuchte Shapes eine PreferredSize statt Bounds,

setze in allen Komponenten Border/ BackgroundColor um zu erkennen was wo wie groß vorhanden ist
 

superping

Aktives Mitglied
Marco13: Wenn ich SwingUtilities.updateComponentTreeUI(cont_eur); weglasse, habe ich kein echtes TitledPanel mehr. Dann ist der obere Rand in dem der Panelname steht verschwunden.

SlaterB: Ja, chart ist ein NullLayout. Habe zum testen verschiedene Border verwendet. Beim Aufruf werden die 'Shapes' angezeigt, verliere ich jedoch den Fokus kommt das 'chart' Panel zum Vorschein.
 
S

SlaterB

Gast
notgedrungen bin ich wieder für ein Testprogramm,
nimm einfach den bisher geposteten Code, baue JFrame drumherum und was immer nötig ist,
dabei tritt kein Fehler mehr auf? -> genau so sieht es auch für andere aus,

alle Details deiner 20.000 Zeilen Code kann man leider kaum absehen,
mehr als genau auf Layout usw. aufzupassen ist schwer allgemein zu tippen

exoitische Komponenten wie JXTitledPanel nach Möglichkeit mindestens für den Anfang/ im Fehlerfall zurückgefahren vermeiden,
wenn alles geht, dann kann man das ja einsetzen und evtl. Fehler zu korrigieren versuchen
 

superping

Aktives Mitglied
Es funktioniert. Wenn ich dem JPanel "chart" einen Layout-Manager zuweise (in meinem Fall GridLayout) bleibt die Zeichnung bestehen. Offensichtlich mag der UI Manager vom look&feel kein null Layout.

Somit war der erste Tipp mit dem CardLayout schon der richtige!

Vielen Dank!

Kleine Verständnisfrage: ich erzeuge die angezeigten JPanels in externen Klassen und rufe das gesamte Panel per getJPanelConnection in der main auf. Damit ist doch das GUI am "Anfang" erzeugen und dann einfach nur hinzufügen gemeint, oder? Oder verstehe ich da was falsch?

Nochmal vielen Dank!
 
S

SlaterB

Gast
setVisible(true) sehe ich immer bei Komponenten die erst später geschaffen werden,
einmal auf JFrame sollte reichen am Anfang

wenn schon am Anfang, dann ja gut
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
H Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
J JTextPane "text/html" grafik implementieren... Java Basics - Anfänger-Themen 9
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
J "Tetris" - Problem bei der Grafik Java Basics - Anfänger-Themen 5
R Grafik in CSV einbinden Java Basics - Anfänger-Themen 2
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
D aufbauende Grafik Java Basics - Anfänger-Themen 13
8 Grafik erstellen Java Basics - Anfänger-Themen 6
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
G Bei Mouseover Grafik ändern, gutes Vorgehen gesucht Java Basics - Anfänger-Themen 0
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
L Grafik Kollision Detektierung Java Basics - Anfänger-Themen 4
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
S Grafik löschen Java Basics - Anfänger-Themen 10
C Grafik einsperren Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
B Grafik zeichnen Java Basics - Anfänger-Themen 25
S Teilstücke aus einer Grafik extrahieren Java Basics - Anfänger-Themen 2
Maxim6394 Grafik rotieren Java Basics - Anfänger-Themen 11
S Probleme mit JMenü und Grafik Java Basics - Anfänger-Themen 2
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
R Hilfe bei erster Grafik Java Basics - Anfänger-Themen 2
A Gui Grafik Java Basics - Anfänger-Themen 4
maddin86 Grafik in .jar einbetten Java Basics - Anfänger-Themen 3
M import einer Grafik aus .jar funktioniert nicht Java Basics - Anfänger-Themen 6
M Grafik export in ein Jar File Java Basics - Anfänger-Themen 5
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
H Grafik auf einem JPanel bewegen. Java Basics - Anfänger-Themen 7
F JLabel mit Grafik füllen Java Basics - Anfänger-Themen 3
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
F Zugriffsproblem - Funktion von Grafik trennen Java Basics - Anfänger-Themen 6
H HtmlUnit - Grafik speichern Java Basics - Anfänger-Themen 2
R Taste gedrückt = Grafik zeichen ?!? Java Basics - Anfänger-Themen 8
D PNG-Grafik erzeugen Java Basics - Anfänger-Themen 8
A Grafik erstellen und in Frame einfügen Java Basics - Anfänger-Themen 17
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
A Grafik 2d Objekte farblich ausfüllen Java Basics - Anfänger-Themen 15
C Grafik einbinden Java Basics - Anfänger-Themen 11
F Größe von Grafik-Containern verschieben Java Basics - Anfänger-Themen 2
J Unterschied zwischen 2 Grafik Methoden Java Basics - Anfänger-Themen 2
M Grafik neuzeichnen Java Basics - Anfänger-Themen 8
M Grafik als Resource laden? Java Basics - Anfänger-Themen 2
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
$ Inhalt von JPanel als Grafik? Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Grafik Java Basics - Anfänger-Themen 3
K Grafik abspeichern, X11 Fehlermeldung Java Basics - Anfänger-Themen 15
T Zeigerposition auf Grafik messen? Java Basics - Anfänger-Themen 5
M ausm String eine Grafik erstellen Java Basics - Anfänger-Themen 4
F Grafik auf Button passt nicht Java Basics - Anfänger-Themen 1
E Grafik in bestimmtes frame einbinden . Java Basics - Anfänger-Themen 13
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2
M Grafik erstellen Java Basics - Anfänger-Themen 8
C Clear im Grafik Editor Java Basics - Anfänger-Themen 16
C Grafik flimmert bzw. flackert bei Bewegung Java Basics - Anfänger-Themen 11
N Grafik formatieren Java Basics - Anfänger-Themen 7
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
M wie kombiniere ich grafik und swing-komponenten Java Basics - Anfänger-Themen 16
N Java Problem bei Grafik und OoP Java Basics - Anfänger-Themen 7
V Grafik ist nur ganz kurz sichtbar Java Basics - Anfänger-Themen 3
H Streichholzziehen - Grafik? Java Basics - Anfänger-Themen 3
M Grafik auf einem JPanel erneut darstellen Java Basics - Anfänger-Themen 3
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8
J Mail body verschwindet Java Basics - Anfänger-Themen 2
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
S Enterzeichen \n verschwindet beim speichern in .txt Java Basics - Anfänger-Themen 5
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
J Cursor verschwindet Java Basics - Anfänger-Themen 2
M Label verschwindet? Java Basics - Anfänger-Themen 3
F Zeichnung verschwindet hinter Bild Java Basics - Anfänger-Themen 2
J Das Gezeichnete auf JPanel verschwindet nach minimize Java Basics - Anfänger-Themen 4
L zeichnung verschwindet nach komponenteneinfügung Java Basics - Anfänger-Themen 20
M bild verschwindet immer Java Basics - Anfänger-Themen 5
K Farbenspiel : Quadrat verschwindet,wenn Fenster inaktiv ist Java Basics - Anfänger-Themen 13
U JButton verschwindet Java Basics - Anfänger-Themen 7
R Appletinhalt verschwindet beim Resizen des Browserfensters Java Basics - Anfänger-Themen 8
B Zeichnung auf dem Applet verschwindet Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben