永发信息网

java JCheckBox

答案:1  悬赏:0  手机版
解决时间 2021-04-29 16:41
  • 提问者网友:轮囘Li巡影
  • 2021-04-29 04:19

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JCheckBox1 implements ItemListener{


JLabel Lab1;

public JCheckBox1(){

JFrame f= new JFrame("JCheckBox");

JPanel p1 = new JPanel();
Container contentPane=f.getContentPane();

JCheckBox c1 = new JCheckBox("麦当劳");
//JCheckBox c2 = new JCheckBox("肯德基",true); // 初始状态
JCheckBox c2 = new JCheckBox("肯德基");
// JCheckBox c3 = new JCheckBox("21世纪",new ImageIcon("麦当劳.gif"));
JCheckBox c3 = new JCheckBox("21世纪");
JLabel Lab1 = new JLabel ("世界");

f.setLayout(new FlowLayout(FlowLayout.LEFT,100,200));

f.add(p1);

p1.add(c1);p1.add(c2); p1.add(c3); p1.add(Lab1);

c1.addItemListener(this); c2.addItemListener(this); c3.addItemListener(this);

f.pack(); f.show();

}

public void itemStateChanged(ItemEvent e)
{

JCheckBox chk = (JCheckBox) e.getItem();

if(chk.getText() == "麦当劳")
{
if (e.getStateChange() == e.SELECTED)
Lab1.setIcon(new ImageIcon("1.gif"));
}

if(chk.getText() == "肯德基")
{
if (e.getStateChange() == e.SELECTED)

Lab1.setIcon(new ImageIcon("1.gif"));
}

if(chk.getText() == "21世纪")
{
if (e.getStateChange() == e.SELECTED)

Lab1.setIcon(new ImageIcon("1.gif"));
}

}
public static void main(String[] args){
new JCheckBox1();
}


} // 为什么无法 改变 标签 的 文本

最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-04-29 04:43

虽然你将Lab1设为成员变量,但是在构造函数中,


写成了JLabel Lab1 = new JLabel ("世界");,这里变成是一个局部变量,


你的成员属性Lab1依然是NULL的。


改成Lab1 = new JLabel ("世界");就可以了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯