Java 无法指定最终局部变量s3和s4,因为它是在封闭类型中定义的

Java 无法指定最终局部变量s3和s4,因为它是在封闭类型中定义的,java,Java,无法在ecplise中分配s3和s4最终局部变量s3和s4处的错误。 我是swing的初学者,有人能帮我吗。信息非常清楚:您将s3和s4声明为final,然后尝试更改它们的值。如果需要执行后一种操作,请不要执行前一种操作。欢迎使用Stackoverflow。你会发现很多常见的问题已经得到了回答:快速搜索可能会为你下次节省一些时间。 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import ja

无法在ecplise中分配s3和s4最终局部变量s3和s4处的错误。
我是swing的初学者,有人能帮我吗。

信息非常清楚:您将
s3
s4
声明为
final
,然后尝试更改它们的值。如果需要执行后一种操作,请不要执行前一种操作。

欢迎使用Stackoverflow。你会发现很多常见的问题已经得到了回答:快速搜索可能会为你下次节省一些时间。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class SwingEx1 {

    public static void main(String[] args) {
        final int s3,s4;
        JFrame f=new JFrame();
        JTextField f1=new JTextField();
        JTextField f2=new JTextField();
        JLabel l1=new JLabel("Number1:");
        JLabel l2=new JLabel("Number2:");
        JButton b1=new JButton("+");
        JButton b2=new JButton("=");
        l1.setBounds(10,50, 100, 10);
        l2.setBounds(10,100, 100, 20);

        f1.setBounds(80,50, 150, 40);
        f2.setBounds(80,100, 150, 40);
        b1.setBounds(80, 160, 60, 30);
        b1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String s1=f1.getText();
                s3=Integer.parseInt(s1);
                String  s2=f2.getText();
                s4=Integer.parseInt(s2);

            }
        } );

        b2.setBounds(150, 160, 60, 30);
        b2.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

            JOptionPane.showMessageDialog(f,s3+s4);

            }
        });
        f.add(l1);
        f.add(l2);
        f.add(f1);
        f.add (f2);
        f.add(b1);
        f.add(b2);
        f.setSize(400, 400);
        f.setLayout(null); 
        f.setVisible(true);

    }

}