单选按钮不显示
Radio buttons don't show
我正在尝试在 java 中进行调查。我有 20 个问题和 5 个可能的选择。我正在考虑将 20 个标签和 100 个单选按钮按 5 个分组。
我设法使用 Net beans GUI 手动添加标签,但我想生成按钮,但它们没有显示。这是我的代码:
public class Prikaz extends javax.swing.JFrame {
/**
* Creates new form Prikaz
*/
public Prikaz() {
initComponents();
javax.swing.JRadioButton [][] buttons = new javax.swing.JRadioButton [20][5];
ButtonGroup [] bg = new ButtonGroup[20];
for (int i = 0; i < 20; ++i) {
bg[i]= new ButtonGroup();
for (int j = 0; j < 5; ++j) {
buttons[i][j] = new javax.swing.JRadioButton();
if(j==0)buttons[i][j].setSelected(true);
buttons[i][j].setLocation(1014+(j*24) , 44+(i*31));
buttons[i][j].setToolTipText(((Integer)(j+1)).toString());
buttons[i][j].setVisible(true);
buttons[i][j].setEnabled(true);
bg[i].add(buttons[i][j]);
}
}
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
// End of variables declaration
}
除了 ButtonGroup 之外,您还需要将按钮添加到父组件。
例如,要将按钮添加到 jlabel1
,请在创建按钮后添加:
jlabel1.add(buttons[i][j]);
编辑:
如果它不起作用,首先对每个 JLabel
执行 jLabel.setLayout(new FlowLayout())
,然后添加新按钮。
我正在尝试在 java 中进行调查。我有 20 个问题和 5 个可能的选择。我正在考虑将 20 个标签和 100 个单选按钮按 5 个分组。
我设法使用 Net beans GUI 手动添加标签,但我想生成按钮,但它们没有显示。这是我的代码:
public class Prikaz extends javax.swing.JFrame {
/**
* Creates new form Prikaz
*/
public Prikaz() {
initComponents();
javax.swing.JRadioButton [][] buttons = new javax.swing.JRadioButton [20][5];
ButtonGroup [] bg = new ButtonGroup[20];
for (int i = 0; i < 20; ++i) {
bg[i]= new ButtonGroup();
for (int j = 0; j < 5; ++j) {
buttons[i][j] = new javax.swing.JRadioButton();
if(j==0)buttons[i][j].setSelected(true);
buttons[i][j].setLocation(1014+(j*24) , 44+(i*31));
buttons[i][j].setToolTipText(((Integer)(j+1)).toString());
buttons[i][j].setVisible(true);
buttons[i][j].setEnabled(true);
bg[i].add(buttons[i][j]);
}
}
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
// End of variables declaration
}
除了 ButtonGroup 之外,您还需要将按钮添加到父组件。
例如,要将按钮添加到 jlabel1
,请在创建按钮后添加:
jlabel1.add(buttons[i][j]);
编辑:
如果它不起作用,首先对每个 JLabel
执行 jLabel.setLayout(new FlowLayout())
,然后添加新按钮。