我正在编写一个代码,其中有一个包含4个选项卡的tabbedpane。每个选项卡都包含一些单选按钮和一个按钮。按钮应按下按下的单选按钮。以下是我的代码。
if(radiobtn1.isSelected()==true)
` {
System.out.println("option 1 selected");
radiobtn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// action for radio button 1
}
});
}
});
}
else if(radiobtn2.isSelected()==true){
System.out.println("option 2 selected");
radiobtn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// action for radio button 2
}
});
}
});
}
}
但每当我按下一个单选按钮时,它的动作监听器就不会被调用。我的代码有什么问题吗?
答案 0 :(得分:0)
修改您的代码,如下所示
rdbtnSample.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (rdbtnSample.isSelected())
System.out.println("Button Pressed");
else
System.out.println("Button Released");
}
});
在执行的操作中添加if条件。 默认情况下,将取消选择单选按钮。
答案 1 :(得分:0)
我认为你应该使用数据或开关参数来控制动作内容。不是通过动态控制按钮中的动作监听器。
就像使用 int radioButtonIndexPressed = 0;
并在按钮按下操作中,使用radioButtonIndexPressed来决定实际操作。