如果同时使用单选按钮和文本,请使用?

时间:2014-01-08 07:49:11

标签: java if-statement netbeans radio-button textfield

我有绝对布局的面板,显示图像的标签和三个单选按钮,棕色,蓝色和红色。

当我在文本字段中输入奥迪A4等汽车名称时,会显示默认图像并选择棕色单选按钮。但是当我选择蓝色和红色单选按钮时,图像将显示为A4蓝色或A4红色但没有响应。

private void fmod1FocusLost(java.awt.event.FocusEvent evt) {
    String mod;
    mod=fmod1.getText();

    if(mod.equals("A4")) {
    rbrown.setSelected(true);   
    imglabel.setIcon(new ImageIcon("D:\\Photo\\a4brown.jpg"));
    fcolour1.setText("Brown");

    if (rblue.isSelected()==true) {
    imglabel.setIcon(new ImageIcon("D:\\Photo\\a4blue.jpg"));
    fcolour1.setText("Blue");
  } 
    else if (rred.isSelected() == true) {
    imglabel.setIcon(new ImageIcon("D:\\Photo\\a4red.jpg"));
    fcolour1.setText("red");
  }
}
 else if(mod.equals("R8"))
    {

        rbrown.setSelected(true);
        imglabel.setIcon(new ImageIcon("D:\\Photo\\r8brown.jpg"));
      fcolour1.setText("Brown");

    if (rblue.isSelected()==true)
           {
                imglabel.setIcon(new ImageIcon("D:\\Photo\\r8blue.jpg"));
  fcolour1.setText("Blue");
           }
           else if(rred.isSelected()==true)
           {
                imglabel.setIcon(new ImageIcon("D:\\Photo\\r8red.jpg"));
  fcolour1.setText("red");
           }
           }

等等,适用于R8,RS5。

我需要一个没有摆动的解决方案。

1 个答案:

答案 0 :(得分:1)

您向我们展示的代码无法捕获用户选择其他单选按钮的事件。因为你选择棕色的单选按钮,就会显示那个。

您需要为单选按钮添加事件处理程序。

// This should be the code that responds to entering a different model
rbrown.setSelected(true);   


// Something like this should be the code that responds to 
// a radio button being selected
mod = fmod1.getText();

if(mod.equals("A4"))
{
    if (rbrown.isSelected())
    {
        imglabel.setIcon(new ImageIcon("D:\\Photo\\a4brown.jpg"));
        fcolour1.setText("Brown");
    }
    else if (rblue.isSelected())
    {
        imglabel.setIcon(new ImageIcon("D:\\Photo\\a4blue.jpg"));
        fcolour1.setText("Blue");
    }
    else if(rred.isSelected())
    {
        imglabel.setIcon(new ImageIcon("D:\\Photo\\a4red.jpg"));
        fcolour1.setText("red");
    }
} 

添加一个监听器并将它们放在一起留给读者你的练习。