| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:代码哪错了?
只看楼主 加入收藏
东方一帅
Rank: 2
等 级:论坛游民
帖 子:18
专家分:34
注 册:2010-7-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
代码哪错了?
package event;
import java.awt.*;
import java.awt.event.*;
public class Item extends Frame implements ItemListener
{
    private static final long serialVersionUID = 1L;
    static Item frm=new Item();
    static Checkbox cb1=new Checkbox("粗体");
    static Checkbox cb2=new Checkbox("斜体",true);
    static Checkbox cbg1=new Checkbox("红色",true);
    static Checkbox cbg2=new Checkbox("蓝色");
    static TextArea ta=new TextArea("选项事件类ItemEvent的使用方法");
    public static void main(String args[])
    {
        frm.setLayout(new FlowLayout(FlowLayout.LEFT));
        frm.setBounds(100, 100, 400, 300);
        frm.add(cb1);
        frm.add(cb2);
        frm.add(cbg1);
        frm.add(cbg2);
        frm.add(ta);
        cb1.addItemListener(frm);
        cb2.addItemListener(frm);
        cbg1.addItemListener(frm);
        cbg2.addItemListener(frm);
        CheckboxGroup grp=new CheckboxGroup();
        cbg1.setCheckboxGroup(grp);
        cbg2.setCheckboxGroup(grp);
        Font f1=ta.getFont();
        ta.setFont(new Font(f1.getName(),Font.ITALIC,f1.getSize()));//这句去掉就对了,但是想设个默认值
        ta.setForeground(Color.red);
        
        frm.setVisible(true);
    }
    public void itemStateChanged(ItemEvent e)
    {
        Checkbox cb=(Checkbox) e.getSource();
        Font font1=ta.getFont();
        int stytle1=font1.getStyle();
        if(cb==cbg1) ta.setForeground(Color.red);
        else if(cb==cbg2) ta.setForeground(Color.blue);
        else if((cb==cb1)||(cb==cb2))
        {
            if(cb==cb1) stytle1=stytle1^1;
            else if(cb==cb2) stytle1=stytle1^2;
        }
        ta.setFont(new Font(font1.getName(),stytle1,font1.getSize()));
    }
   
}
搜索更多相关主题的帖子: 代码 
2010-08-14 22:43
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:10 
程序代码:
package event;
import java.awt.*;
import java.awt.event.*;
public class Item extends Frame implements ItemListener
{
    private static final long serialVersionUID = 1L;
    static Item frm=new Item();
    static Checkbox cb1=new Checkbox("粗体");
    static Checkbox cb2=new Checkbox("斜体",true);
    static Checkbox cbg1=new Checkbox("红色",true);
    static Checkbox cbg2=new Checkbox("蓝色");
    static TextArea ta=new TextArea("选项事件类ItemEvent的使用方法");
    public static void main(String args[])
    {
        frm.setLayout(new FlowLayout(FlowLayout.LEFT));
        frm.setBounds(100, 100, 400, 300);
        frm.add(cb1);
        frm.add(cb2);
        frm.add(cbg1);
        frm.add(cbg2);
        frm.add(ta);
        cb1.addItemListener(frm);
        cb2.addItemListener(frm);
        cbg1.addItemListener(frm);
        cbg2.addItemListener(frm);
        CheckboxGroup grp=new CheckboxGroup();
        cbg1.setCheckboxGroup(grp);
        cbg2.setCheckboxGroup(grp);
        ta.setForeground(Color.red);
       
        frm.setVisible(true);
        Font f1=ta.getFont();
        ta.setFont(new Font(f1.getName(),Font.ITALIC,f1.getSize()));//放在这里就正常了

    }
    public void itemStateChanged(ItemEvent e)
    {
        Checkbox cb=(Checkbox) e.getSource();
        Font font1=ta.getFont();
        int stytle1=font1.getStyle();
        if(cb==cbg1) ta.setForeground(Color.red);
        else if(cb==cbg2) ta.setForeground(Color.blue);
        else if((cb==cb1)||(cb==cb2))
        {
            if(cb==cb1) stytle1=stytle1^1;
            else if(cb==cb2) stytle1=stytle1^2;
        }
        ta.setFont(new Font(font1.getName(),stytle1,font1.getSize()));
    }
   
}


原本的代码运行时报空指针错误,f1为null
猜测是frm没有显示,所以testarea并没有完全初始化好,所以Font f1=ta.getFont();拿到的是null

PS:不修改getFont的顺序,把TextArea改成JTextArea类就正常了。奇怪,JTextArea和TextArea的初始化方法不一样嘛- -


2010-08-14 23:14
东方一帅
Rank: 2
等 级:论坛游民
帖 子:18
专家分:34
注 册:2010-7-23
收藏
得分:0 
   求真相,到底是什么原因。。。
2010-08-15 10:58
快速回复:代码哪错了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032354 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved