我有绝对布局的面板,显示图像的标签和三个单选按钮,棕色,蓝色和红色。
当我在文本字段中输入奥迪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。
我需要一个没有摆动的解决方案。
答案 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");
}
}
添加一个监听器并将它们放在一起留给读者你的练习。