Grafik neuzeichnen

Status
Nicht offen für weitere Antworten.
Hallo,

ich zeige auf einem JFrame eine Grafik an. Wenn das Fenster neugezeichnet wird, wird leider die Grafik nicht neu gezeichnet. Ich sehe in meinem Code allerdings keinen Fehler. Kann mir hier jemand weiterhelfen?
Besten Dank im Voraus!

Code:
package imagetest;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 *
 * @author ...
 */
public class dlgBox extends JDialog implements ActionListener {

    private JPanel Panel_North;
    private Image imgWarning;
    private JButton btnClose;
    
    public dlgBox(Frame owner)
    {     
     super(owner, "Image Test", true);
    
     setBackground(Color.getColor("240,240,240"));
     setForeground(Color.BLACK);
     setLayout(null);
     setResizable(false); 
     setSize(350,150);     
     setLocationRelativeTo(null);     
     
     add(Panel_North = new JPanel(), BorderLayout.NORTH);  
     Panel_North.setBackground(new java.awt.Color(240,240,240));
     Panel_North.setSize(this.getSize());
     Panel_North.setLocation(0,0);           
     
     Panel_North.add(btnClose = new JButton("Close"));
     btnClose.addActionListener(this);   
     
     imgWarning = getToolkit().getImage(getClass().getResource("warning.gif"));     
     MediaTracker mt = new MediaTracker(this);
     mt.addImage(imgWarning,0);
     try {  mt.waitForAll(); } catch (InterruptedException ignored) { }
     repaint();
     
   }
   
   @Override
   public void paint(Graphics g) {
       super.paint(g);
       if (null != imgWarning)
         g.drawImage(imgWarning, 15, 50, Panel_North);
       
   }
    
   public void actionPerformed(ActionEvent event)
   {    
    setVisible(false);
    dispose();
   }
}
 

Tobias

Top Contributor
Mh, du zeichnest eine Grafik und legst dann ein undurchsichtiges Panel (PanelNorth) drüber, dessen Größe der deines Dialogs entspricht. Dadurch ist die Grafik dann überdeckt und nicht mehr zu sehen. Gib mal ein Bild von dem, was du machen willst.

mpG
Tobias
 
ich zeichne ja die Grafik auf dem Panel (welches sichtbar sein soll, wg. der Farbe).

Beim Aufruf des Formulars ist alles ok:
imgtest.gif


Jedoch verschwindet beim Neuzeichnen die Grafik (Testgrafik hier ein Ausrufezeichen)
 

André Uhres

Top Contributor
Vielleicht so:
Code:
package imagetest;

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

public class dlgBox extends JDialog implements ActionListener {

    private JPanel panelNorth;
    private Image imgWarning;
    private JButton btnClose;

    public dlgBox(Frame owner) {
        super(owner, "Image Test", true);
        setBackground(Color.getColor("240,240,240"));
        setSize(350, 150);
        setResizable(false);
        setLocationRelativeTo(null);

        imgWarning = getToolkit().getImage(getClass().getResource("warning.gif"));
        MediaTracker mt = new MediaTracker(this);
        mt.addImage(imgWarning, 0);
        try {
            mt.waitForAll();
        } catch (InterruptedException ignored) {
        }

        setContentPane(new Background());
        getContentPane().add(panelNorth = new JPanel(), BorderLayout.NORTH);

        panelNorth.add(btnClose = new JButton("Close"));
        btnClose.addActionListener(this);
    }

    class Background extends JPanel {

        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            if (null != imgWarning) {
                g.drawImage(imgWarning, 15, 50, panelNorth);
            }

        }
    }

    public void actionPerformed(ActionEvent event) {
        setVisible(false);
        dispose();
    }

    public static void main(String[] args) {
        dlgBox d = new dlgBox(new JFrame());
        d.setVisible(true);
    }
}
 

Wildcard

Top Contributor
Sollte es dir übrigens um einen Warning Dialog oder ähnliches gehen, dann verwende JOptionPane.
 

Tobias

Top Contributor
Erstens solltest du Wildcards Rat befolgen und zweitens hast du die paintComponent des Dialogs überschrieben und NICHT die des Panels. Du zeichnest also in den Dialog, wo die Grafik durch das Panel überdeckt wird. In Andres Code wird dieses Problem angegangen.

mpG
Tobias
 
Ah, ich glaube zu verstehen :cool:
Danke André, funktioniert so wunderbar.

Das mit dem Contentpane muss ich mir aber auf jeden Fall nochmal anschauen.
Da steige ich noch nicht so wirklich durch.

Danke für die tolle Hilfe, Problem gelöst!



@Wildcard: Es geht generell um verschiedene Formulare, d.h. nicht explizit um Warning / Confirmation Dialoge. Aber danke für den Tip!

edit:
@Tobias: ja, das ist mir auch aufgefallen, als ich gerade Andrés Code nachvollzogen habe.
Ich habe ja tatsächlich die falsche Methode überschrieben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
S Grafik verschwindet Java Basics - Anfänger-Themen 8
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 Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
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 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
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8
A MouseMotionListener - wie Mausverfolgung und Neuzeichnen realisieren? Java Basics - Anfänger-Themen 12
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
U Neuzeichnen eines JPanels Java Basics - Anfänger-Themen 17
G Neuzeichnen eines Strings Java Basics - Anfänger-Themen 3
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
J punkte verschwinden beim neuzeichnen neuer punkte Java Basics - Anfänger-Themen 11
G JTable das ewige neuzeichnen verbieten? Java Basics - Anfänger-Themen 7
G Neuzeichnen des Rechtecks Java Basics - Anfänger-Themen 8
L Zum neuzeichnen wirklich zwingen Java Basics - Anfänger-Themen 4
M Neuzeichnen eines Dialogs Java Basics - Anfänger-Themen 2
D Neuzeichnen eines Bildes in einer Komponente Java Basics - Anfänger-Themen 3
F Neuzeichnen eines JDialoges Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben