单击删除button
时,我希望它显示选中了哪个checkbox
。但是,它们是num下的一条红线,该红线位于删除button
代码中。
for(int i=0;i<num;i++)
deleteAdmin.java
public deleteAdmin()
{
int num=0;
JButton back= new JButton("Back");
JButton delete= new JButton("Delete");
JPanel topPanel = new JPanel(new GridLayout(1, 0, 3, 3));
topPanel.add(back);
topPanel.add(delete);
adminAPI admin = new adminAPI();
List<String>allName = null;
try {
allName= admin.displayName(); // retrieve all names from MySQL and store to list
num= admin.displayCheckBoxAndLabel(); // get total row numbers
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Object [] o1=allName.toArray(); // convert arrayList to array
JCheckBox[] checkBoxList = new JCheckBox[num];
JPanel checkBoxPanel= new JPanel(new GridLayout(0,5,5,5));
for(int i = 0; i < num; i++) {
checkBoxList[i]= new JCheckBox(""+o1[i]); // replace each checkbox with name
checkBoxPanel.add(checkBoxList[i]);
}
delete.addActionListener(new ActionListener(){ // if delete button clicked
public void actionPerformed(ActionEvent e)
{
for(int i=0;i<num;i++)
{
if(checkBoxList[i].isSelected())
System.out.println(i);
}
}
});
setLayout(new BorderLayout(5, 5));
add(topPanel, BorderLayout.PAGE_START);
add(checkBoxPanel, BorderLayout.CENTER);
setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
}
错误
线程"AWT-EventQueue-0"java.lang中出现异常。错误:未解决编译问题:封闭范围中定义的局部变量num必须是final或实际上是final在gui.deleteAdmin$1.actionPerformed(deleteAdmin.java:86)
我是否正确地执行了它?
声明此
int num;
作为类变量,并在中对其进行初始化
public deleteAdmin()
{
num=0;