Mit einem JPanel mit null-layout
Also ich habe eine Klasse namens CalendarPanel
erweitert JPanel
. Es verwendet ein null-layout. Wie würde ich CalendarPanel
als reguläre Komponente? Wenn ich es in ein anderes JPanel
und fügen Sie es anschließend ein Fenster auf, es verschwindet. Es ist nur sichtbar, wenn ich es direkt an ein Fenster.
BEARBEITEN:
Und ja, ich weiß, mit einem JPanel
mit einem null-layout ist eine schlechte Praxis. CalendarPanel
ist eigentlich jemand anderes den code, und ich versuche, es für meine Zwecke zimmerreserviereung, ohne das Sie es umgestalten.
"Mit einem JPanel mit null-layout" Doooooooooooon nicht!
"..CalendarPanel, extends JPanel", Warum? Oder eher, warum wird nicht einfach eine Instanz von einem panel?
Bitte zeigen Sie Ihren code.
Thompson, Warum nicht eine Klasse, die Sie erweitert JPanel? Ich mache eine ziemlich große Anwendung, also ich bin momentan dabei, verschiedene Klassen für die verschiedenen GUI-Komponenten, so dass der Aufenthalt etwas organisiert.
Jetzt verstehe ich, was Sie sagten. Wie bereits in meinem edit oben, es ist nicht mein code.
"..CalendarPanel, extends JPanel", Warum? Oder eher, warum wird nicht einfach eine Instanz von einem panel?
Bitte zeigen Sie Ihren code.
Thompson, Warum nicht eine Klasse, die Sie erweitert JPanel? Ich mache eine ziemlich große Anwendung, also ich bin momentan dabei, verschiedene Klassen für die verschiedenen GUI-Komponenten, so dass der Aufenthalt etwas organisiert.
Jetzt verstehe ich, was Sie sagten. Wie bereits in meinem edit oben, es ist nicht mein code.
InformationsquelleAutor Joel Christophel | 2013-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist, weil ein Fenster verwendet ein BorderLayout standardmäßig und automatisch die Größe der Systemsteuerung in das Fenster passen.
Das ist, weil ein JPanel verwendet ein FlowLayout Standard und ein flow-layout Hinsicht die bevorzugte Größe der Komponenten, die Hinzugefügt, um es. Da benutzen Sie ein null-layout des panel nicht haben eine bevorzugte Größe, so wird nichts lackiert.
Dass ist, warum Sie sollten NICHT mit null-layout. Statt mit layout-Managern, weil Sie alles tun, diese zusätzliche Arbeit für Sie.
Verwenden Sie layout-Manager, da Sie werden bestimmen Sie die bevorzugte Größe für Sie. Wenn Sie nicht mit einem layout-manager Sie sind verantwortlich für die übergeordnete, die getPreferredSize () - Methode zur Rückgabe der Größe des panel.
Das klingt nicht allzu schlimm.
Haben Sie all die Kommentare Lesen??? Jeder empfiehlt die Verwendung einer layout-manager, da der Berechnung die bevorzugte Größe des Panels ist es nicht einfach, das ist der Grund, warum alle anderen können die layout-manager seinen job tun. Sicher, Sie können wählen, zufällige zahlen wie (200, 200), aber das bedeutet nichts und du bekommst eine hässliche GUI, ist nicht einfach zu ändern.
InformationsquelleAutor camickr
HINWEIS: es ist eine sehr schlechte Idee, im Allgemeinen, verwenden Sie ein null-layout. Verwenden Sie eine
LayoutManager
statt.Wenn Sie darauf bestehen, mit einem null-layout, du gehst zu haben, um die position der
JPanel
manuell wie erwähnt, in Dokumentation. Hier ist ein Beispiel.Ja, aber warum hat diese Antwort verdient einen -1? Was ist technisch falsch mit ihm, abgesehen von der Tatsache, dass die meisten Entwickler nicht, wie null-layout?
es ist technisch falsch beraten mit einem null-layout, wenn es nicht erforderlich ist
Ich habe nicht beraten, ich aufrichtig beantwortet, die OP ' s Frage. Würde es helfen, wenn ich eine Verzichtserklärung hinzufügen, dass dies eine schlechte Idee im Allgemeinen?
ja, es würde sicherlich helfen, fügen Sie ein starken Haftungsausschluss 🙂
InformationsquelleAutor 808sound