label.setText不起作用

时间:2015-09-15 12:50:06

标签: java user-interface label settext

我有这个程序应该替换标签" 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();

}

}`

1 个答案:

答案 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)