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

java swing单选按钮-java.lang.NullPointerException

冉昊
2023-03-14
import java.awt.*;
import javax.swing.*;
import javax.swing.ButtonGroup;

public class Scafhome extends javax.swing.JFrame {

    private JRadioButton bandButton;
    private JRadioButton gelButton;
    private JButton jbtnRun;

    public Scafhome() {
        JFrame jfrm = new JFrame("Scaffold search ...");
        jfrm.setLayout (new GridLayout(8,2));
        jfrm.setSize(320,220);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JRadioButton bandButton = new JRadioButton();
        bandButton.setText("Band-id");
        bandButton.setSelected(true);

        JRadioButton gelButton = new JRadioButton();
        gelButton.setText("Gelc-ms");

        ButtonGroup group = new ButtonGroup();
        group.add(bandButton);
        group.add(gelButton);

        JButton jbtnRun = new JButton("RUN");


        jbtnRun.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                RunActionPerformed(evt);
            }
        });


        jfrm.add(bandButton);
        jfrm.add(gelButton);
        jfrm.add(jbtnRun);

        jfrm.setVisible(true);

    }


    private void RunActionPerformed(java.awt.event.ActionEvent evt) {

        String radioText="";
        if (bandButton.isSelected()) {
            radioText=bandButton.getText();
        }

        if (gelButton.isSelected()) {
            radioText=gelButton.getText();
        }

        javax.swing.JOptionPane.showMessageDialog( Scafhome.this, radioText );

    }


    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Scafhome();
            }
        });
    }

}

共有1个答案

公羊光明
2023-03-14

您正在跟踪bandButton变量--在构造函数中重新声明它,并初始化重新声明的本地变量,而不是类字段,使类字段为空。解决方案--不要重新声明变量。

为明确起见,请更改以下内容:

public class Scafhome extends javax.swing.JFrame {

    private JRadioButton bandButton;
    //...

    public Scafhome() {
        //...

        // re-declared variable!
        JRadioButton bandButton = new JRadioButton();

对此:

public class Scafhome extends javax.swing.JFrame {

    private JRadioButton bandButton;
    //...

    public Scafhome() {
        //...

        // variable not re-declared    
        bandButton = new JRadioButton();
 类似资料:
  • 主要内容:创建单选按钮,单选按钮组,单选按钮事件,单选按钮焦点单选按钮通常组合在一起,以便用户进行单选,即用户只能在单选按钮列表中选择一个项目。 例如,当选择鞋子尺寸时,我们通常从列表中选择一个尺寸。 单选按钮只能执行:选择或取消选择。 以下代码显示,当放置在中时,只能选择一个。 上面的代码生成以下结果。 创建单选按钮 包中的类有两个构造函数。 要为其标签创建一个带有空字符串的单选按钮,然后再设置标签。 要创建具有指定标签的单选按钮。 方法带有参数可以显式选

  • 主要内容:硬编码的单选按钮,单选按钮内项,由地图生成的单选按钮以下部分显示如何使用JSF中的创建单选按钮。 标签呈现一组类型为“”的HTML输入元素,并使用HTML表格和标签标签进行格式化。 以下JSF代码 - 被渲染生成以下HTML代码 - 硬编码的单选按钮 以下是文件: 中的代码。 以下是文件: 中的代码 - 以下是文件: 中的代码 - 单选按钮内项 以下是文件: 中的代码。 以下是文件: 中的代码。 以下是文件: 中的代码。 由地图生成的单选按钮 以下

  • 问题内容: 我知道在某些Google线程中已经提到了这一点,但是我仍然找不到将无线电输入绑定到模型的正确解决方案(以简洁的方式), 目前,我有HTML: 在控制器中: 这不起作用(与复选框相同)… 关于如何在不丢失数据绑定的情况下在第一个单选按钮上设置默认值的任何想法? 谢谢! 问题答案: 我认为您应该在这两个单选按钮中使用具有不同值的相同变量。 然后,您应该根据用户输入设置“ Rma”或“ De

  • import { Radio } from 'feui'; components: { [Radio.name]: Radio }, data() { return { radio001: ["安徽", "北京"], radio001Value: "安徽", radio002Value: "北京", radio003: [ {

  • import { Checkicon } from 'feui'; components: { [Checkicon.name]: Checkicon } data () { return { demo1: false, demo2: true, demo3: false, demo4: true } } 代码演示 左对齐 <f

  • 这是一个 列表 拓展,可以用来创建单选和复选按钮组。 复选按钮组 <div class="list-block"> <ul> <!-- Single chekbox item --> <li> <label class="label-checkbox item-content"> <!-- Checked by default -->