我正在为我的单选按钮使用 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/