Komische Sache bei der Darstellung auf einem JPanel

Status
Nicht offen für weitere Antworten.

Micha_S

Aktives Mitglied
Hallo erst mal!

Ich soll für die Schule ein Programm schreiben, dass eine Party simuliert, vom funktionalen her funktioniert alles, jedoch ist die darstellung sehr komisch...

Ich zeichne die Personen als kleine Rechtecke in ein JPanel:
Code:
private void zeichnen()
  {
    List Personen;                                                              //Hier werden die Personen abgespeichert, die sich im Raum befinden.(Ist eine LinkedList)
    Graphics g;
    cSozialMensch Mensch;                                                       //Sie dient als Zwischenspeicher für den Menschen das ist ein Gast
    cKoordinaten Platz;                                                         //Sie dient als Zwischenspeicher für den Platz, wo die Person gerade steht
    
    Personen = Fachklasse.getGaesteListe();
    g = Zimmer.getGraphics();

    g.setColor(Color.black);
    g.fillRect(0,0,Zimmer.getWidth(),Zimmer.getHeight());     //Auf dem Panel werden alle Zeichnungen gelöscht

    if(!Personen.isEmpty()){                                                        //Für jede Person wird ein 1*1 großes Pixel gemalt, an der Stelle, an der sie sich befindet.
      Personen.toFirst();
      while(!Personen.isBehind()){
        Mensch = (cSozialMensch)Personen.getItem();                             //Wenn die Person weiblich ist, dann wird das Quadrat Pink.
        if(Mensch.getGeschlecht() == 'w'){
          g.setColor(Color.pink);
        } else if(Mensch.getGeschlecht() == 'm'){                          //Wenn die Person männlich ist, dann wird das Quadrat Blau.
          g.setColor(Color.blue);
        }
        Platz = Mensch.getKoordinaten();
        g.drawRect(Platz.getX(),Platz.getY(),1,1);
        
Personen.next();
      }
    }
  }

Nun ist das Problem, dass der Raum fehlerhaft dargestellt wird:

http://www.pictureupload.de/pictures/141206184449_Fehler.jpg

Wenn man nun auf den Button "Löschen"
Code:
public void Gast_loeschen() {
    Fachklasse.loeschen();
    this.zeichnen();
  }
klickt Ergibt sich folgendes Bild, was ich haben möchte...
http://www.pictureupload.de/pictures/141206185036_Richtig.jpg

Ich habe keine Ahnung wie ich das hinbekomme, hab schon alles was mir ind den Sinn gekommen ist ausprobiert, z. B. anstatt fillRect() clearRect()

Danke schon mal im Vorraus!
 

Wildcard

Top Contributor
Und zum 8ten mal diese Woche:
Ruf kein getGraphics auf!
Tutorial schnappen und lesen wie man in Swing zeichnet. :###
 
B

Beni

Gast
Es sollte mal einen Informatiklehrschein geben, so wie ein Führerschein. Da müsste der Lehrer beweisen, dass er z.B. weiss, dass HTML keine Programmiersprache ist...

Zum Thema: Wenn deine Klasse da oben von JPanel erbt, dann überschreib die "paintComponent"-Methode. Diese Methode erhält ein Graphics, mit dem du zeichnen kannst. Die Methode rufst du indirekt durch "repaint" auf.
Manchmal wird ein Fenster verdeckt, dann muss alles neu gezeichnet werden. Und in deinem aktuellen Code machst du das vermutlich nicht.
 

Wildcard

Top Contributor
Sorry das meine Antwort etwas sparsam war, es ist nur so das die Frage sehr häufig kommt, und eine korrekte Antwort immer etwas ausführlicher wird...
Wie Beni schon gesagt hat wird in Swing passiv durch überschreiben der paintComponent gezeichnet.
Am besten du traust dich auch das deiner Lehrerin zu sagen, denn dieser Weg ist schlicht falsch und funktioniert nur sporadisch.
 

Micha_S

Aktives Mitglied
Ja ich habs jetzt hin gekriegt!

So funzt es echt schön und sieht auch viel besser aus!

Das mit der kurzen Antwort macht nicht, hätte ich mal vernünftig erst mal die SUFU benutzt
hätte ich das gar nicht machen brauchen...

Das mit dem Lehrer, naja..., also der Unterricht ist sowieso eher Richtung Inhalt
und nicht Richtung Programmieren ausgerichtet. Oft ist das Programmieren nur ein notwendiges Übel... :cry:

Aber ich habs denk ich mal verstanden nur das mit dem opaque hab ich auf
englisch nich so richtig verstanden, aber es funktioniert und ist demnach
denke ich mal nur für spezielle Sachen wichtig.

Ich sag noch mla: DANKE!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JavaFX Komische konsolen Ausgabe (nur roter Pfad) AWT, Swing, JavaFX & SWT 7
P Komische Zeichen beim Abspeichern von TextFelder AWT, Swing, JavaFX & SWT 2
G Swing Button ActionListener macht komische Sachen AWT, Swing, JavaFX & SWT 19
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
B Komische Darstellung unter Windows 2000 AWT, Swing, JavaFX & SWT 2
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
Y Darstellung und MouseHover bei bestimmten Wörtern in einem String AWT, Swing, JavaFX & SWT 2
W Swing bzgl. Tableskalierung/Darstellung einer Matrix AWT, Swing, JavaFX & SWT 8
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Swing JTable, wie erreiche ich folgende Darstellung? AWT, Swing, JavaFX & SWT 10
M AWT LabelArray verschobene Darstellung AWT, Swing, JavaFX & SWT 2
B Transformation und Darstellung von Koordinaten AWT, Swing, JavaFX & SWT 5
N Swing Java Komponente zur Darstellung von klickbaren Links, die Java Funktionen ausführen können AWT, Swing, JavaFX & SWT 2
A Swing Darstellung von JComponents in Swing AWT, Swing, JavaFX & SWT 14
M Swing JTable drucken/Darstellung AWT, Swing, JavaFX & SWT 2
E Swing Darstellung einer Zeilenbar AWT, Swing, JavaFX & SWT 6
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
U Swing Problem bei der Darstellung "komplexer Objecte" in einer JList mit AbstractListModel: AWT, Swing, JavaFX & SWT 3
Y LayoutManager Keine vollständige Darstellung der Tabelle mit GridBagLayout AWT, Swing, JavaFX & SWT 3
A Darstellung dauert zu lange. Wie rest verzögern? AWT, Swing, JavaFX & SWT 7
S LayoutManager Fehlerhafte Darstellung einer Statusleiste/Statusbar AWT, Swing, JavaFX & SWT 6
H Thread-Problem mit der Darstellung beim Sperren des Fensters AWT, Swing, JavaFX & SWT 2
S Grafische Darstellung von signalen AWT, Swing, JavaFX & SWT 2
S jTable size und Text darstellung AWT, Swing, JavaFX & SWT 2
L SWT Darstellung des Datums in Textfeld? AWT, Swing, JavaFX & SWT 2
M SWT Probleme bei der Darstellung des "&"-Zeichens... AWT, Swing, JavaFX & SWT 3
E Darstellung komplexer Formen, z.B. gebogener Pfeil AWT, Swing, JavaFX & SWT 2
P Problem mit Darstellung von JButton(s) AWT, Swing, JavaFX & SWT 2
D Darstellung in Swing wie HTML? AWT, Swing, JavaFX & SWT 2
R Darstellung von JButton AWT, Swing, JavaFX & SWT 6
G Swing Darstellung JTable AWT, Swing, JavaFX & SWT 2
T Swing Java Darstellung einer Tabelle AWT, Swing, JavaFX & SWT 3
S Unterschiedliche Darstellung Java 5 und 6 AWT, Swing, JavaFX & SWT 7
B Probleme bei JPanel Darstellung AWT, Swing, JavaFX & SWT 6
M GBL - Darstellung gestreckt? AWT, Swing, JavaFX & SWT 3
P Applet darstellung von Textfeldern Problem AWT, Swing, JavaFX & SWT 3
O JComboBox andere Darstellung des Inhaltes + größe der Auswah AWT, Swing, JavaFX & SWT 11
M Swing mit Gtk - Fehlerhafte Darstellung AWT, Swing, JavaFX & SWT 3
S JTree - Darstellung von Ordnern rückwärts AWT, Swing, JavaFX & SWT 4
C Fragen zur Darstellung einer JTable mittels Renderer AWT, Swing, JavaFX & SWT 2
H Darstellung einer Kurve im Koordinatensystem AWT, Swing, JavaFX & SWT 8
T [gelöst] JFrame Grundlagen (Größe und Darstellung) AWT, Swing, JavaFX & SWT 6
G JTable dynamische Darstellung der ankommenden Daten AWT, Swing, JavaFX & SWT 19
G Darstellung von JComboBox AWT, Swing, JavaFX & SWT 14
S Gui Darstellung AWT, Swing, JavaFX & SWT 2
S Swing Element für Explorer-Fenster darstellung AWT, Swing, JavaFX & SWT 13
P Darstellung eines Graphen AWT, Swing, JavaFX & SWT 2
G keine darstellung in JTable AWT, Swing, JavaFX & SWT 2
A JLabel: Unterschiede zw. JRE 1.3 und 1.5 in der Darstellung AWT, Swing, JavaFX & SWT 3
Z Seltsame Darstellung verschachtelter GridBagLayouts AWT, Swing, JavaFX & SWT 2
M SWT Darstellung Linux / Win verschieden? AWT, Swing, JavaFX & SWT 4
P Fehlerhafte Darstellung bei JLabel.setText AWT, Swing, JavaFX & SWT 2
C Timer, Darstellung einer Uhr AWT, Swing, JavaFX & SWT 4
D Wie Darstellung / Layout als Liste AWT, Swing, JavaFX & SWT 2
T darstellung eines polynom 5.grades AWT, Swing, JavaFX & SWT 2
S JTable + Sortieren => Problem bei Darstellung AWT, Swing, JavaFX & SWT 13
U JSlider - Probleme bei der Darstellung AWT, Swing, JavaFX & SWT 3
V jTalbe: Probs bei Icon Darstellung AWT, Swing, JavaFX & SWT 4
Z Empfehlung für solche Darstellung! AWT, Swing, JavaFX & SWT 4
F Darstellung von Tastaturkürzel in JMenuItem AWT, Swing, JavaFX & SWT 13
R Mehrzeilige Darstellung von Spalten in SWING-Tabellen AWT, Swing, JavaFX & SWT 5
M Problem mit JTree-Darstellung AWT, Swing, JavaFX & SWT 5
T Problem mit Darstellung AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben