JComponents wird nicht anggezeigt

MusicIsLife

Mitglied
Hej erstmal,

ich bin ein ziemlicher Neuling in Java, beschäftige mich jetzt etwa ein dreiviertel Jahr mit dem Thema und wollte mich jetzt an was grafisches wagen. Ich wollte einfach so mal zum Jux ein einfaches memory-Spiel schreiben.

Dabei ist es so, dass ich ein JPanel CardPanel habe, in dem die Karten angezeigt werden sollen. Die karten sind jeweils JComponent und sind alle Objekte von der JComponent Card. Um erstmal ein Gefühl für componentsPaint() zu bekommen, hatte ich diese Funktion erst im CardPanel implementiert. Es wurde mir auch eine wunderschöne Karte angezeigt. Dann dachte ich mir, ok, toll es klappt, schreiben wir mal eine Klasse Card, die Karten erzeugt. das heißt, exakt die gleiche Methode steht nun in Card. In CardPanel werden nun 16 Karten (4x4) erzeugt. Interessanterweise krieg ich keine einzige Karte zu sehen.

Hat irgendwer vllt Ahnung woran das liegt? ???:L ???:L ???:L

Hier die Klasse CardPanel:

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

/**
 *
 * Ein Panel, das die Karten erzeugt mit Ihren Eigenschaftn.
 */
public class CardPanel extends JPanel {

    /*
     * Ein Konstruktor für CardPanel
     */
    public CardPanel() {
        System.out.println("    Konstruktion des CardPanel...");
        this.setLayout(new FlowLayout());
        this.createCards();
        System.out.println("    Konstruktion des CardPanel: Status = fertig...");
    }

    void createCards() {
        Card[][] cards = new Card[4][4];
        int posY = 5;
        for (int i= 0; i<4; i++) {
            int posX = 5;
            for (int j = 0; j < 4; j++) {
                cards[i][j] = new Card(posX, posY);
                this.add(cards[i][j]);
                posX += 105;
            }
            posY += 105;
        }
    }

    /*
     * der ehemalige paint-aufruf, mit dem es auch wunderbar klappt..
     */
    /*
    protected void paintComponent(Graphics card) {
        card.setColor(Color.CYAN);
        card.drawRoundRect(10, 50, 50, 50, 5, 5);
        card.fillRoundRect(10, 50, 50, 50, 5, 5);
    }
    */
}

Und hier die Klasse Card:

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

/**
 *
 * Hier werden die Karten erzeugt
 */
public class Card extends JComponent {
    
    int posX = 0;
    int posY = 0;
    int length = 100;
    /*
     * Konstruktor für Card, der diepositionen und die länge sowie farbe 
     * als parameter erwartet
     */
    public Card(int posX, int posY, int length/*, Color color*/) {
        System.out.println("     Konstruktion eines Objekts von Card...");
        this.posX = posX;
        this.posY = posY;
        this.length = length;
        System.out.println("     Konstruktion eines Objekts von Card: Status = fertig...");
    }
    /*
     * Konstruktor für Card, der die positionen usowie farbe
     * als parameter erwartet, länge ist standardmäßig auf 100
     */
    public Card(int posX, int posY/*, Color color*/) {
        System.out.println("     Konstruktion eines Objekts von Card...");
        this.posX = posX;
        this.posY = posY;
        System.out.println("     Konstruktion eines Objekts von Card: Status = fertig...");
    }

    /*
     * Hier wird eine Memorykarte gezeichnet
     */
    @Override
    protected void paintComponent(Graphics card/*, Color color*/) {
        card.setColor(Color.BLACK);
        card.drawRoundRect(posX, posY, length, length, 5, 5);
        card.fillRoundRect(posX, posY, length, length, 5, 5);
    }
}

Vielen Dank im voraus^^
 

Ebenius

Top Contributor
Beschäftige Dich mal mit dem FlowLayout. Das legt die Komponenten aneinander und richtet sich nach deren preferred size. Deine Cards haben eine preferred size von null mal null Pixeln. Rate mal, wie groß Deine Cards also werden. :)

Eine Komponente kann auch nicht einfach so über ihre Grenzen hinaus zeichnen. Also zeichnen sie de facto gar nicht. Alle Angaben zur Position in den jeweiligen Graphics-Methoden sind übrigens relativ zur linken oberen Ecke der Komponente; also sollten alle Card-Instanzen auch (bzgl. ihrer eigenen Position) an der selben Position zeichnen, womit dann posX und posY überflüssig werden.

Davon abgesehen willst Du wahrscheinlich ein GridLayout benutzen und kein FlowLayout.

Happy Hacking!
Ebenius
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing Wie sollte man seine JComponents vererben? AWT, Swing, JavaFX & SWT 3
T Swing Drag and Drop für JComponents AWT, Swing, JavaFX & SWT 1
T JComponents zur Laufzeit auf JPanel darstellen AWT, Swing, JavaFX & SWT 10
L JComponents vertauschen AWT, Swing, JavaFX & SWT 2
L JComponents in Array AWT, Swing, JavaFX & SWT 11
A Swing Darstellung von JComponents in Swing AWT, Swing, JavaFX & SWT 14
B Ablauf der paint-Methoden von JComponents AWT, Swing, JavaFX & SWT 20
P Selbstgezeichnete JComponents AWT, Swing, JavaFX & SWT 5
H Drag&Drop von JComponents AWT, Swing, JavaFX & SWT 6
G JComponents tag vergeben AWT, Swing, JavaFX & SWT 6
M Linie zwischen JComponents AWT, Swing, JavaFX & SWT 5
T JComponents abändern/modifizieren z.b. JSlider AWT, Swing, JavaFX & SWT 2
N Rahmen zum editieren der Größe eines JComponents? AWT, Swing, JavaFX & SWT 2
N Mehrere JComponents übereinander AWT, Swing, JavaFX & SWT 3
G JComponents AWT, Swing, JavaFX & SWT 4
D Problem beim Update von unsichtbaren JComponents mit Timern AWT, Swing, JavaFX & SWT 5
H JavaFX Background-Bild wird in .exe nicht angezeigt AWT, Swing, JavaFX & SWT 6
B im JFrame gesetzte Hintergrundfarbe wird beim Ausführen nicht gezeigt AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
G JavaFX LineChart Datenpunkte Markierung wird abgeschnitten AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
G Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
S Next_Button wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 6
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JavaFX Bearbeitetes Bild wird nicht gespeichert AWT, Swing, JavaFX & SWT 9
J setOnCloseRequest wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
kodela BufferStrategy wird nicht gefunden AWT, Swing, JavaFX & SWT 5
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S ImageView wird dem Gridpane nicht zugefügt AWT, Swing, JavaFX & SWT 1
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
G JavaFX Nach Zoomen wird an falscher Stelle gezeichnet AWT, Swing, JavaFX & SWT 0
kodela Swing Letzte Änderung in der Tabelle wird nicht gespeichert AWT, Swing, JavaFX & SWT 5
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
S JavaFX Wird es überhaupt genutzt? AWT, Swing, JavaFX & SWT 3
FRI3ND GUI wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Canvas wird nicht angezeigt AWT, Swing, JavaFX & SWT 10
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Aus welchen Grund wird der Button nicht angezeigt im GridPane? AWT, Swing, JavaFX & SWT 1
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Controller wird zu groß, was tun ? AWT, Swing, JavaFX & SWT 5
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
zhermann TableView wird nicht gefüllt AWT, Swing, JavaFX & SWT 14
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
zhermann JavaFX Main App wird nicht geöffnet AWT, Swing, JavaFX & SWT 6
Naxon89 JavaFX Image wird nicht korrekt geladen AWT, Swing, JavaFX & SWT 3
4 Swing JLabel wird ,,abgehackt" AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
A Swing Tabelle wird bei Betätigung des Button nicht befüllt AWT, Swing, JavaFX & SWT 17
krgewb 2D-Grafik paint-Methode wird zu oft ausgeführt AWT, Swing, JavaFX & SWT 5
G Nur ein JPanel wird angezeigt AWT, Swing, JavaFX & SWT 9
M Swing Inhalt meines JTables wird falsch dargestellt AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben