当前位置: 首页 > 知识库问答 >
问题:

使用。设置最后一个JRadioButton上的文本

华锦
2023-03-14

当JRadioButton设置为final时,如何更改其标签?

这是构造函数中初始化单选按钮的一段代码,当按下检查按钮时,选定的单选按钮的值被发送到验证用户答案的方法:

final JRadioButton ANSWER1 = new JRadioButton("Empty 1");
final JRadioButton ANSWER2 = new JRadioButton("Empty 2");
final JRadioButton ANSWER3 = new JRadioButton("Empty 3");
final JRadioButton ANSWER4 = new JRadioButton("Empty 4");

JButton CHECK = new JButton("Check");
CHECK.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        if (ANSWER1.isSelected()){
            qAnswered(1);
        }
        if (ANSWER2.isSelected()){
            qAnswered(2);
        }
        if (ANSWER3.isSelected()){
            qAnswered(3);
        }
        if (ANSWER4.isSelected()){
            qAnswered(4);
        }

    }   

});

选择“下一个问题”按钮时,单选按钮的文本标签需要更改为下一组答案。不幸的是,由于单选按钮设置为final,这会导致应用程序崩溃。

我该怎么做?

共有1个答案

柏明亮
2023-03-14

变量的final关键字意味着该变量只能初始化一次,但这并不意味着该对象中的字段不能更改。尽管JRadioButton参考是最终的答案4。setText()永远不会抛出任何最终相关错误。

if (ANSWER1.isSelected()){
    qAnswered(1);
    ANSWER1.setText("New Text 1"); // This will work
}

为了更清楚地了解最终变量,来自JLS 4.12.4(强调我的)

一个变量可以被声明为最终变量。一个最终变量只能被分配一次。声明一个变量最终可以作为有用的留档,它的值不会改变,并且可以帮助避免编程错误。

如果最终变量被分配给,则是编译时错误,除非它在分配之前肯定未分配(§16)。

空final是其声明缺少初始值设定项的final变量。

一旦分配了最终变量,它总是包含相同的值。如果最终变量包含对对象的引用,那么对象的状态可能会通过对对象的操作而改变,但变量将始终引用同一个对象。

 类似资料:
  • 我目前正面临一个问题,就是如何将一个数组中的项放入JRadioButtons中。我有下面的代码,当我尝试将它们添加到JFrame时,会出现以下错误。 我也试着在以前的地方做 但出现以下错误

  • 是否可以使用或者我必须构建自定义设计? 请帮忙。

  • 我需要一点帮助来查找字符串中最后一个大写字符的最后一个索引 我一直在使用regex这样做。 它怎么会一直返回-1而不是B的索引7 代码突出显示在下面 有没有人对如何解决这个问题有什么建议?

  • 问题内容: 我的目标是在最后一个CSS上使用CSS ,但是这样做不是。 如何 只 选择最后一个孩子? 问题答案: 该伪类仍然无法可靠地跨浏览器使用。特别是,InternetExplorer<9和Safari<3.2绝对不支持它,尽管Internet Explorer 7和Safari 3.2 确实 支持。 最好的选择是向该项目显式添加一个(或类似的)类,然后应用。

  • 我在for循环中有一个多jradiobutton,我正在尝试将侦听器放在它上面,我发现: 多个单选按钮的操作侦听器 创建二维JRadioButton数组,如 这是所有JRadioButton的单个ActionListener 我有点理解,但我仍有一些澄清: 二维的jRadio按钮的目的是什么?我的意思是,我有点明白它是为jRadio按钮设置一个名称,但就我的理解而言,它只是用于显示。是的,确认这是

  • 我在我的应用程序中使用viewpagerIndicator,我有200页。可以在最后一页之前禁用滑动1页吗? 例如,我的当前页面是199页,这里滑动是不可用的,永远不会改变到下一页,只有上一页。 编辑:我在Tabindicator中有一个日历,页面显示当天的信息,我需要显示第二天,但不需要滑动,因为不存在信息。因此,我需要禁用此页面。 考试: 19/ago/2014 |20/ago/2014 |2