Anzeigen einer JComponent innerhalb eines JPanel auf ein JFrame
Ich bin fehlerhaften anzeigen, um eine JComponent innerhalb eines JPanel auf ein JFrame.
Der folgende Code funktioniert nicht.
JComponent component = ...
panel.add(component, BorderLayout.CENTER);
frame.add(panel, BorderLayout.CENTER);
Aber wenn ich die JComponent der JFrame[wie frame.add(component, BorderLayout.CENTER);
], zeigt es den Inhalt.
Irgendwelche Ideen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
JPanel
's Standard-layout ist einFlowLayout
so dass Sie nicht haben, um anzugeben, in die Mitte des Fensters.Einfach:
Abwechselnd tun:
Standardmäßig eine JComponent nicht haben eine bevorzugte Größe.
Per default ein JPanel verwendet ein FlowLayout. Wenn Sie eine Komponente hinzufügen, die Anzeige respektieren Sie die bevorzugte Größe der Komponente, die 0 ist, so dass Sie sehen es nicht.
Standardmäßig die Panels, die als content pane eines JFrame verwendet ein BorderLayout. Also, wenn Sie eine Komponente hinzufügen, die content-pane des Frames wird die Komponente automatisch in der Größe angepasst, um füllen den Raum zur Verfügung, um den Rahmen,
Die Lösung Ihrer Komponente eine bevorzugte Größe, dann kann es sein verwendet auf alle panel mit einem layout-manager.