我想知道如何动态添加checkboxes
和名称。
checkboxes
的数量跟随MySQL
中的行数,并且从MySQL
检索名称。假设我在MySQL
中有三个数据,所以我将输出为上图。
这是我的A类代码
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();
}
然后将两个参数传递给class 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]);
}
}
}
然而,我得到了这种输出。没有显示的复选框:(
答案 0 :(得分:0)
快速查看代码中至少有两个可能的奇怪之处。
在事件派发线程上创建和操作 必须 >>。所以如果你的代码
deleteAdmin delete= new deleteAdmin(num,allName);
delete.setVisible(true);
setVisible(false);
dispose();
在EDT中运行,因为它位于某个按钮处理程序内部或类似于没有问题,否则您需要使用invokeLater()
来执行此操作。