java - ItemListener getitem() 不只返回名称

标签 java swing netbeans itemlistener

我正在为我的单选按钮使用 ItemListener。 我看到了很多 ItemListener 函数,但我的似乎工作方式不同。

...        jUserButton2.addItemListener(ffs);
}

private ItemListener ffs = new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        String user = e.getItem().toString();
        System.out.println(user);
    }
}
};

它返回的值是“javax.swing.JRadioButton[User,445,453,49x18,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.synth.SynthBorder@1f2f60d,flags=288,maximumSize=, minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=true, PressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=User]"

它不应该只返回值吗? (在本例中为“用户”)

最佳答案

作为docs说:

public Object getItem()
Returns the item affected by the event.

受影响的项目是一个JRadioButton(这也是控制台打印的内容)。这是逻辑上正确的,因为受影响的项目是该按钮。只需将代码更改为:

String user = ((JRadioButton) e.getItem()).getName();
System.out.println(user);

关于java - ItemListener getitem() 不只返回名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797331/

相关文章:

java - Install4j J​​ava 最低版本似乎不起作用

java - 如何在 ANTLR4 中生成 AST?

java - 使用java 2D图形旋转的黑色区域?

java - 默认情况下,如何使 netbeans 中的 swing 控件 protected 或公开?

JavaFx 8 - 一个具有无法着色的边框并且能够在中间包含文本的类

java - 在 NetBeans 中生成匿名监听器

java - 制作一个单独的构造函数和 init 方法更好,还是创建一个带参数的构造函数更好?

java - 将完整的 HTML 内容推送回客户端时,如何避免在服务器端创建临时文件?

Java - 绘画时顶部插图未返回正确的值

java - jFrame 达到某个值时退出