importjava.awt.event.*;importjava.awt.*;publicclassapp29extendsFrameimplementsItemListener{staticapp29frm=newapp29();staticCheckboxchk1=newCheckbox("粗体");staticCheckbox...
import java.awt.event.*;
import java.awt.*;
public class app29 extends Frame implements ItemListener
{ static app29 frm=new app29();
static Checkbox chk1=new Checkbox("粗体");
static Checkbox chk2=new Checkbox("斜体");
static Checkbox chkg1=new Checkbox("红色");
static Checkbox chkg2=new Checkbox("蓝色");
static TextArea ta=new TextArea("选项事件类ItemEvent的使用方法",8,30);
public static void main(String args[])
{CheckboxGroup grp=new CheckboxGroup();
frm.setTitle("选项事件类处理");
frm.setLocation(200,150);
frm.setSize(250,220);
frm.setLayout(new FlowLayout(FlowLayout.LEFT));
chkg1.setCheckboxGroup(grp);
chkg2.setCheckboxGroup(grp);
chk1.addItemListener(frm);
chk2.addItemListener(frm);
chkg1.addItemListener(frm);
chkg2.addItemListener(frm);
frm.add(chk1);
frm.add(chk2);
frm.add(chkg1);
frm.add(chkg2);
frm.add(ta);
frm.setVisible(true);}
public void itemStateChanged(ItemEvent e)
{Checkbox chk=(Checkbox)e.getSource();
Font font1=ta.getFont();
int style1=font1.getStyle();
if(chk==chkg1) ta.setForeground(Color.RED);
else if(chk==chkg2) ta.setForeground(Color.BLUE);
else if((chk==chk1)&&(chk==chk2))
if(chk==chk1) style1=style1^1;
if(chk==chk2) style1=style1^2;
ta.setFont(new Font(font1.getName(),style1,font1.getSize()));
ta.append("\nstyle="+style1+" "+e.getItem()+chk.getState());
}
}
这个程序运行后点斜体,粗体,style的显示是2(为什么不是3),另外点粗体的显示是0;为什么不是1··希望帮忙解答,谢谢啊
展开