【问题标题】:JButton isselected method doesnt workJButton isselected 方法不起作用
【发布时间】:2012-10-01 06:11:44
【问题描述】:

下面的代码是在选择 3 个按钮中的任何一个时更改背景颜色:红色、绿色或蓝色。当我选择其中任何一个时,实际上什么都没有发生。但是,从 JButtons 更改为 JRadioButtons 或 JToggleButtons 确实有效。有谁知道为什么?是因为 JButton.isselected() 方法被窃听并且它总是返回 false 吗?感谢您的帮助...谢谢。

public class bgcolor2 extends JFrame
{
private static final int FRAME_WIDTH = 300;
private static final int FRAME_HEIGHT= 400;
private ActionListener listener;
private JButton greenbutton;
private JButton redbutton;
private JButton bluebutton;
private JPanel colorpanel;
private JPanel buttonpanel;

public bgcolor2()
{
    colorpanel = new JPanel();
    add(colorpanel,BorderLayout.CENTER);

    class bgcolorlistener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            changebgcolor();    
        }
    }
    listener=new bgcolorlistener();
    createbuttons();
    setSize(FRAME_WIDTH,FRAME_HEIGHT);
}

public void createbuttons()
{
    greenbutton = new JButton("Green");
    greenbutton.addActionListener(listener);
    bluebutton = new JButton("Blue");
    bluebutton.addActionListener(listener);
    redbutton = new JButton("Red");
    redbutton.addActionListener(listener);
    buttonpanel = new JPanel();

    buttonpanel.add(greenbutton);
    buttonpanel.add(redbutton);
    buttonpanel.add(bluebutton);
    add(buttonpanel,BorderLayout.SOUTH);
}

public void changebgcolor()
{
    if (greenbutton.isSelected()) 
        {
            colorpanel.setBackground(new Color(0,255,0));
        }
    if (bluebutton.isSelected()) 
        {
            colorpanel.setBackground(new Color(0,0,255));
        }
    if (redbutton.isSelected()) 
        {
            colorpanel.setBackground(new Color(255,0,0));
        }
}
}

【问题讨论】:

  • 另见example
  • 您在哪个操作系统中测试?

标签: java swing selection jbutton jtogglebutton


【解决方案1】:

isSelected() 方法适用于切换按钮,不适用于常规按钮。

在您的情况下,您必须跟踪事件的来源。您可以通过event.getSource() 获取点击按钮。

【讨论】:

    猜你喜欢
    • 2015-03-14
    • 2016-02-27
    • 2019-11-02
    • 2013-02-03
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多