您应该在静态初始值设定项中或直接初始化静态最终变量。所以要么
static final JButton button = new JButton();
要么
static final JButton button;static { button = new JButton();}Java语言规范还提供了一些其他文档:关于最终变量的部分指定了为什么会出现编译错误:
如果将最终变量赋值给它,则是编译时错误,除非在赋值之前肯定未赋值(第16节)。
和第16章关于明确赋值会谈

您应该在静态初始值设定项中或直接初始化静态最终变量。所以要么
static final JButton button = new JButton();
要么
static final JButton button;static { button = new JButton();}Java语言规范还提供了一些其他文档:关于最终变量的部分指定了为什么会出现编译错误:
如果将最终变量赋值给它,则是编译时错误,除非在赋值之前肯定未赋值(第16节)。
和第16章关于明确赋值会谈