我有这个程序应该替换标签" MALE" 或" FEMALE" ,具体取决于选择者选择的内容,但是当我试图运行它时," setText" 将无法运行。
`import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Hue implements ItemListener
{
JFrame frame= new JFrame("Demo");
Container content;
JPanel panel= new JPanel();
JLabel label = new JLabel("[LABEL]");
JCheckBox box= new JCheckBox("With Gender");
JRadioButton male= new JRadioButton("Male");
JRadioButton female= new JRadioButton("Female");
ButtonGroup bg = new ButtonGroup();
JTextField field = new JTextField(100);
public void launchFrame()
{
panel.add(label);
panel.add(box);
panel.add(male);
panel.add(female);
bg.add(male);
bg.add(female);
box.addItemListener(this);
male.addItemListener(this);
female.addItemListener(this);
panel.add(field);
panel.setLayout(null);
label.setBounds(5,0, 100, 20);
box.setBounds(10,15, 100, 20);
male.setBounds(20, 35, 100, 20);
female.setBounds(20, 55, 100, 20);
field.setBounds(15, 80, 250, 100);
field.setHorizontalAlignment(JTextField.LEFT);
male.setEnabled(false);
female.setEnabled(false);
field.setEnabled(false);
content= frame.getContentPane();
content.add(panel, BorderLayout.CENTER);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent e)
{
if (e.getItem() == box)
{
if (!box.isSelected())
{
male.setEnabled(false);
female.setEnabled(false);
field.setEnabled(false);
}
else if (box.isSelected())
{
male.setEnabled(true);
female.setEnabled(true);
field.setEnabled(true);
{
if (e.getItem() == male)
{
label.setText("Male");
}
else if (e.getItem() == female)
{
label.setText("Female");
}
}
}
}
}
public static void main(String args[])
{
Hue hw= new Hue();
hw.launchFrame();
}
}`
答案 0 :(得分:0)
public void itemStateChanged(ItemEvent e)
{
if (e.getItem() == box)
{
if (!box.isSelected())
{
male.setEnabled(false);
female.setEnabled(false);
field.setEnabled(false);
}
else if (box.isSelected())
{
male.setEnabled(true);
female.setEnabled(true);
field.setEnabled(true);
}
}
else if (e.getItem() == male)
{
label.setText("Male");
}
else if (e.getItem() == female)
{
label.setText("Female");
}
}
根据您的代码if (e.getItem() == box)
,永远不会发生if (e.getItem() == male)
或if (e.getItem() == female)