2016-01-01 5 views
1

заполнить меня этот кодСетка Сумка Компоновка не кнопку

//Create the single player panel 
    singlePlayerPanel.setLayout(new GridBagLayout()); 
    GridBagConstraints gbc = new GridBagConstraints(); 
    gbc.insets = new Insets(1,1,1,1); 
    JLabel STypeOfGameLabel = new JLabel("Type Of Game:"); 
    gbc.gridx=0; 
    gbc.gridy=0; 
    singlePlayerPanel.add(STypeOfGameLabel,gbc); 
    JComboBox STypeOfGameCombobox = new JComboBox(new String[] {"Normal (12*2 cards)", "Double (24*2 cards)"}); 
    gbc.gridx=1; 
    gbc.gridy=0; 
    singlePlayerPanel.add(STypeOfGameCombobox,gbc); 
    JCheckBox SShowRandomly = new JCheckBox("Show Randomly"); 
    gbc.gridx=0; 
    gbc.gridy=2; 
    gbc.gridwidth=2; 
    singlePlayerPanel.add(SShowRandomly,gbc); 
    JCheckBox SSwap = new JCheckBox("Swap"); 
    gbc.gridx=0; 
    gbc.gridy=3; 
    gbc.gridwidth=2; 
    singlePlayerPanel.add(SSwap,gbc); 
    JCheckBox SCertainOrder = new JCheckBox("CertainOrder"); 
    gbc.gridx=0; 
    gbc.gridy=4; 
    gbc.gridwidth=2; 
    singlePlayerPanel.add(SCertainOrder,gbc); 
    JButton SPlay = new JButton("PLAY"); 
    gbc.gridx=0; 
    gbc.gridy=5; 
    gbc.gridwidth=2; 
    gbc.gridheight=3;//DOESN'T WORK 
    gbc.fill=GridBagConstraints.VERTICAL; 
    gbc.fill=GridBagConstraints.HORIZONTAL; 
    singlePlayerPanel.add(SPlay,gbc); 
    JButton SBack = new JButton("Back"); 
    gbc.gridx=0; 
    gbc.gridy=8; 
    gbc.gridheight=3; 
    singlePlayerPanel.add(SBack,gbc); 

кнопка Splay не получает больше. screenshot

и я понятия не имею, что я делаю неправильно. Если я делаю это на любом флажке, это работает, но на этой кнопке это не так.

P.S Java новичку

+1

Кнопки заполняют сетку. У вас есть только два столбца, поэтому кнопка заполняет два столбца. Я не уверен, что вы хотите. Если вы ожидаете, что кнопка будет заполнять ширину всего кадра, посмотрите на раздел из учебника Swing на [Как использовать GridBagLayout] (http://docs.oracle.com/javase/tutorial/uiswing/layout /gridbag.html). Демонстрация показывает, как компоненты заполняют все пространство. Так что загрузите демо-версию с ней. – camickr

+0

Спасибо! ответил на мой вопрос :) –

+0

1) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Обеспечить ASCII-искусство или простой рисунок * предназначенного макета GUI при минимальном размере и, если он изменен, с большей шириной и высотой. –

ответ

0

Все мне нужно было положить

gbc.ivory=50; 

вместо

gbc.gridheight=3; 

сделать компонент высотой.

enter image description here

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