2010-12-27 11 views
1

Ich habe ein Problem, dass Swing-Komponenten in verschiedenen Teilen des Programms manchmal falschen Hintergrund haben. Zum Beispiel this oder this.Swing: Probleme mit dem Hintergrund der Komponente

Wie ich bereits erwähnt habe, ist der Fehler nicht permanent und kann an einer Stelle einmal und nie danach auftreten. Aber immer noch gibt es einige Orte, wo ich es nach dem Zufallsprinzip reproduzieren kann. Leider sehe ich keine Lösungen.

Hat jemand einige Ideen wie kann ich es beheben?

+0

-1, Veröffentlichen Sie Ihre SSCCE (http://sscce.org), um das Problem zu demonstrieren. – camickr

+0

Whoa, das ist ein ungewöhnlicher Screenshot! Wenn Sie ein Codebeispiel posten, würde das viel helfen. – Rekin

+0

Sorry, aber die Anwendung ist sehr groß und Bug reproduziert sich nicht ständig, es ist sehr schwer, ein brauchbares Beispiel zu posten. –

Antwort

2

Wenn Sie Ihre Komponenten auf nicht-opaque einstellen (ich denke, der Anruf ist setOpaque(false)), wird die Hintergrundfarbe der Komponente, die es oben auf der Show durch ist.

+0

Danke, das macht Sinn. Könnten Sie bitte noch eine weitere Frage beantworten: Kann das Problem damit verbunden sein, den Inhalt des Dialogs zu ändern? –

+0

Das hängt sehr davon ab, wie Sie es ändern. –

+0

Was ist der richtige Weg? Ich rufe repaint() auf, während ich zum Beispiel das Etikett ändere. –

1

Zusätzlich zu dem, was Paul sagte, gibt es die Frage, ob Sie selbstgemachte Komponenten verwenden.

Solche Komponenten sollten sich um ihre vollständig belegte Region (oder zumindest die ungültigen Regionen) im Farbrückruf kümmern. Ein häufiger Fehler, der zu merkwürdigen Artefakten beim Verschieben oder Ändern der Größe führt, ist, dass nur "wichtige" Teile neu gezeichnet werden, z. B. eine Zeichenfolge, die angezeigt werden soll, ohne den Hintergrund zu zeichnen.

In diesem Fall wird alles, was zuvor von Ihnen gezeigt wurde, angezeigt.

+0

Danke für Tou Antwort, aber ich habe das selbst herausgefunden –

Verwandte Themen