小问题,送分
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyCheckBox extends JFrame
implements ItemListener
{
JTextField tf;
JCheckBox boldBox,italicBox;
int bold=Font.PLAIN,italic=Font.PLAIN;
public MyCheckBox()
{
super("dddddd");
Container c=getContentPane();
c.setLayout(new FlowLayout());
tf=new JTextField("dkadk",24);
tf.setFont(new Font("Serif",Font.PLAIN,14));
boldBox=new JCheckBox("boldBox");
italicBox=new JCheckBox("italicBox");
boldBox.addItemListener(this);
italicBox.addItemListener(this);
c.add(tf);
c.add(boldBox);
c.add(italicBox);
setSize(275,100);
show();
}
public void itemStatechange(ItemEvent e)
{
if (e.getSource()==boldBox)
{
if (e.getStateChange()==ItemEvent.SELECTED)
{
bold=Font.BOLD;
}
else
{
bold=Font.PLAIN;
}
}
if (e.getSource()==italicBox)
{
if (e.getStateChange()==ItemEvent.SELECTED)
{
italic=Font.ITALIC;
}
else
{
italic=Font.PLAIN;
}
}
tf.setFont(new Font("serif",bold+italic,16));
tf.repaint();
}
public static void main(String args[])
{
MyCheckBox app=new MyCheckBox();
}
}
按照书上的例子写的代码,编译时出现以下错误,为什么,怎么解决。
MyCheckBox.java:4: MyCheckBox should be declared abstract;
it does not define itemStateChanged(java.awt.event.ItemEvent)
in MyCheckBox
问题点数:100、回复次数:7Top
1 楼farawayzheng_necas(遥远)回复于 2002-09-17 12:08:35 得分 80
public void itemStatechange(ItemEvent e)
^^^^^^^^^^^^^^
改成itemStateChangedTop
2 楼BluePig(ampmiao)回复于 2002-09-17 12:13:42 得分 10
9494Top
3 楼babyfu(你的亲亲宝贝)回复于 2002-09-17 12:15:28 得分 10
同意楼上看法,其实你最好再JB中按下ctrl+h(好像是,我现在手头没有JB)还是ctrl+j,它会自动把诊听器需要的函数名称列出来的,那样你就不会写错了,以后还可以多看看Api,里面有比较详细的说明的
Top
4 楼qxjavajava(射手座 =--->静静看那流光飞舞)回复于 2002-09-17 12:15:55 得分 0
这么简单的问题也问,快拿分来。呵呵Top
5 楼CtrlV(哈哈)回复于 2002-09-17 12:22:35 得分 0
不是那里的毛病,我那是笔误Top
6 楼CtrlV(哈哈)回复于 2002-09-17 12:28:46 得分 0
又对了一下,真写错了,分钱Top
7 楼namowen(寒号不已)回复于 2002-09-17 12:47:03 得分 0
同意 farawayzheng_necas(遥远) 。
实现接口时,必须实现接口中定义的所有方法。你把方法名写错了,认为你是又定义了一个新的方法,而不是实现接口中的方法。
另外,你把boldBox和italicBox加到一个ButtonGroup中,效果会好些:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyCheckBox extends JFrame
implements ItemListener
{
JTextField tf;
JCheckBox boldBox,italicBox;
ButtonGroup buttonGroup1 = new ButtonGroup();
int bold=Font.PLAIN,italic=Font.PLAIN;
public MyCheckBox()
{
super("dddddd");
Container c=getContentPane();
c.setLayout(new FlowLayout());
tf=new JTextField("dkadk",24);
tf.setFont(new Font("Serif",Font.PLAIN,14));
boldBox=new JCheckBox("boldBox");
italicBox=new JCheckBox("italicBox");
boldBox.addItemListener(this);
italicBox.addItemListener(this);
buttonGroup1.add(boldBox);
buttonGroup1.add(italicBox);
c.add(tf);
c.add(boldBox);
c.add(italicBox);
setSize(275,100);
show();
}
public void itemStateChanged(ItemEvent e)
{
if (e.getSource()==boldBox)
{
if (e.getStateChange()==ItemEvent.SELECTED)
{
bold=Font.BOLD;
}
else
{
bold=Font.PLAIN;
}
}
if (e.getSource()==italicBox)
{
if (e.getStateChange()==ItemEvent.SELECTED)
{
italic=Font.ITALIC;
}
else
{
italic=Font.PLAIN;
}
}
tf.setFont(new Font("serif",bold+italic,16));
tf.repaint();
}
public static void main(String args[])
{
MyCheckBox app=new MyCheckBox();
}
}
Top




