无法在java中为“final”变量赋值
private void pushButtonActionPerformed(java.awt.event.ActionEvent evt)
{
final int c=0;
final JDialog d=new JDialog();
JLabel l=new JLabel("Enter the Element :");
JButton but1=new JButton("OK");
JButton but2=new JButton("Cancel");
final JTextField f=new JTextField(10);
JPanel panel = new JPanel();
but1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
c=Integer.parseInt(f.getText());
d.setVisible(false);
d.dispose( );
}
});
but2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
d.setVisible(false);
d.dispose( );
}
});
}
我使用的是 netbeans 7.1.1。这是我的代码,我已经声明“c”为“final int”,但行“c=Integer.parseInt(f.getText());”我得到一个错误“无法为最终变量分配值”。如果我从声明中删除单词 final 并使其成为 “int c” ,那么在同一行中,我得到一个错误“局部变量 c 不能从类中访问;需要声明 final”。谁能告诉我为什么会发生这种情况?