2015-11-22 3 views
0

Я сейчас программирую игру Chomp для Uni. Все работает отлично, но ярлык внизу. Предполагается, что его фон заполняет все дно. В приложении вы можете видеть, как теперь это выглядит. Я попытался установить минимальный и предпочтительный размер ярлыка. Высота меняется, но ширина остается неизменной для текста. Как я могу это изменить?JLabel не изменит ширину

Примечание: фрагмент содержит только настройки рамы и панелей в пользовательском методе, а не в основном классе.

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); 




    } 

http://i.stack.imgur.com/qDfBM.png

ответ

1

A BoxLayout отношений ширины компоненты к метке отображаются в его предпочтительной ширине/высоту.

JFrame по умолчанию использует BorderLayout. Так просто добавить метку к раме независимо от панели:

//panel.add(anzeige); 
//fenster.add(panel); 
fenster.add(panel, BorderLayout.CENTER); 
fenster.add(anzeige, BorderLayout.PAGE_END); 

PAGE_END ограничение уважает высоту, но делает ширину, равную доступное пространство. Прочтите раздел из руководства Swing по телефону How to Use BorderLayout для получения дополнительной информации и примеров.

Смежные вопросы