1
我想知道如何动态添加checkboxes
和名称。在java中动态添加复选框
的checkboxes
数量是跟随行的MySQL
数量和名称从MySQL
检索。假设我有三个数据在MySQL
,所以我会得到上面的图像输出。
这是我课程代码
checkAPI api= new checkAPI();
try
{
num = api.displayCheckBoxAndLabel(); // get 3
List<String> allName= api.displayName(); // [John,Tony,Kik]
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
deleteAdmin delete = new deleteAdmin(num,allName);
delete.setVisible(true);
setVisible(false);
dispose();
}
然后两个参数传递给类deleteAdmin
public class deleteAdmin extends JFrame {
private JPanel contentPane;
private JTextField userText;
private JTextField txtpassword;
JFrame f= new JFrame(" Add Admin");
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
button frame = new button();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public deleteAdmin(int num, List<String> names)
{
super("Delete Admin");
setBounds(100, 200, 340, 229);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(35, 19, 242, 146);
contentPane.add(panel);
panel.setLayout(null);
JCheckBox[] checkBoxList = new JCheckBox[num];
for(int i = 0; i < num; i++) {
checkBoxList[i] = new JCheckBox("CheckBox" + i);
contentPane.add(checkBoxList[i]);
}
}
}
不过,我得到这样的输出。不显示任何复选框:(
使用空布局:'contentPane.setLayout(null)',您必须为组件提供大小和位置,使用'setBounds'。 – Berger
@Berger因为它们是动态添加的,我怎样才能为每个'checkboxes'设置'setBounds'? –
你可以在'for'循环中做到这一点,并根据'i'值选择它们的位置。 – Berger