2013-11-09 4 views
0

Это мой код:JFrame макет с радиокнопками

frame2 = new JFrame("Confirmation"); 
     frame2.setLayout(new BorderLayout()); 
     JRadioButton y,n,c; 
     panel = new JPanel(); 
      ButtonGroup buttonGroup = new ButtonGroup(); 
      y = new JRadioButton("Add"); 
      buttonGroup.add(y); 
      panel.add(y); 
      n = new JRadioButton("Update"); 
      buttonGroup.add(n); 
      panel.add(n); 
      c = new JRadioButton("Delete"); 
      buttonGroup.add(c); 
      panel.add(c); 
      y.setSelected(true); 
      b1=new JButton(); 
      b1.setBounds(300,100,2,2); 
      b1.setIcon(new ImageIcon(searchresult.class.getResource("/images/yes.png"))); 
      b2=new JButton(); 
      b2.setBounds(100,10,2,2); 
      b2.setIcon(new ImageIcon(searchresult.class.getResource("/images/no.png"))); 
      panel.add(b1); 
      panel.add(b2); 
      frame2.add(panel); 
      frame2.setSize(182,150); 
      frame2.setVisible(true); 

Сейчас это дает мне следующий вывод enter image description here

в то время как я хочу это enter image description here

с увеличенной шириной, но я я не могу этого сделать. Может ли кто-нибудь предоставить мне дополнительную информацию, которая могла бы мне помочь

+1

Не обижайся, но этот код своего рода уродство. Вы должны его модулировать/реорганизовывать. –

+0

Это не настоящий код. Просто для примера –

+0

Тем не менее, чем проще код читать или понимать, тем более вероятно, что кто-то ответит на ваш вопрос. Кроме того, это просто хорошая практика. –

ответ

1

JPanel по умолчанию использует FlowLayout, который, как следует из названия, отображает компоненты один после после, в потоке ...

Два варианта. Используйте составную компоновку, используя BorderLayout в качестве основания, создайте JPanel, который использует кнопки GridLayout для радиокнопок (используя 0 строки и столбец 1), добавьте это в положение базовой панели CENTER.

Создайте второй JPanel, используя FlowLayout и ваши кнопки к нему. Добавьте это в позицию SOUTH базовой панели.

Второй вариант заключается в использовании GridBagLayout

Взгляните на Laying out Components within a Container для более подробной информации

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