我现在编程为Uni的Chomp游戏。一切正常,但标签在底部。它的背景应该填补整个底部。在附件中,您可以看到它现在看起来如何。我尝试设置标签的最小和首选大小。高度正在变化,但宽度只是保持调整到文本。我怎么能改变它?
注意:该代码段仅包含自定义方法中的框架和面板的设置,而不是主类。
private void init()
{
JFrame fenster = new JFrame();
this.spielfeld = new SpielfeldPanel(M, N);
this.anzeige = new SpielerAnzeigeLabel(this.spieler);
JPanel panel = new JPanel();
BoxLayout boxlayout = new BoxLayout(panel,BoxLayout.Y_AXIS);
panel.setLayout(boxlayout);
fenster.setTitle("Chomp");
fenster.setSize(1000,700);
panel.setPreferredSize(new Dimension(1000, 60));
Dimension d = new Dimension(getPreferredSize());
panel.setMinimumSize(d);
panel.add(spielfeld);
panel.add(anzeige);
fenster.add(panel);
this.spielfeld.setVisible(true);
this.anzeige.setVisible(true);
panel.setVisible(true);
fenster.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
答案 0 :(得分:1)
BoxLayout
尊重组件的宽度,标签以其首选宽度/高度显示。
默认情况下,JFrame使用BorderLayout。因此,只需将标签添加到框架中,而不是面板:
//panel.add(anzeige);
//fenster.add(panel);
fenster.add(panel, BorderLayout.CENTER);
fenster.add(anzeige, BorderLayout.PAGE_END);
PAGE_END约束尊重高度,但宽度等于可用空间。阅读How to Use BorderLayout上Swing教程中的部分,了解更多信息和示例。