当前位置: 代码迷 >> Java相关 >> [求助] 未初始化是怎么回事啊??
  详细解决方案

[求助] 未初始化是怎么回事啊??

热度:192   发布时间:2007-09-25 15:10:19.0
[求助] 未初始化是怎么回事啊??
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//创建JPanel面板
class PanelTest extends JApplet
{
JPanel p;
public PanelTest()
{
p=new JPanel();
getContentPane().add(p);
}
}
//创建JButton按钮 并将按钮添加到面板
class ButtonTest extends PanelTest
{
JButton butObj1;
JButton butObj2;
public ButtonTest()
{
butObj1=new JButton("击我");
butObj2=new JButton("按钮2");
butObj1.setEnabled(true);//使能
butObj2.setEnabled(false);//不使能
p.add(butObj1);
p.add(butObj2);
}
}
//创建FlowLayout流布局管理器 并为面板设置流布局
class FlowLayoutTest extends ButtonTest
{
FlowLayout layoutObj;
public FlowLayoutTest()
{
layoutObj=new FlowLayout(FlowLayout.CENTER,10,10);
p.setLayout(layoutObj);//将流布局添加到面板
}
}
//创建事件类EventTest 并为按钮添加事件
class EventTest extends FlowLayoutTest
{
ButtonEvent beObj;
public EventTest()
{
beObj=new ButtonEvent();//创建事件内部类对象
butObj1.addMouseListener(beObj); //为butObj1注册监听器
butObj2.addMouseListener(beObj);//为butObj2注册监听器
}
//下面为一个事件内部类,编写事件处理代码
class ButtonEvent implements MouseListener
{
//重写MouseListener接口的所有方法
public void mouseClicked(MouseEvent e)
{
Object obj=e.getSource();//返回事件类
if(obj==butObj1)
{
butObj1.setEnabled(false);
butObj1.setText("按钮1");
butObj2.setEnabled(true);
butObj2.setText("击我");
}
if(obj==butObj2)
{
butObj2.setEnabled(false);
butObj2.setText("按钮2");
butObj1.setEnabled(true);
butObj1.setText("击我");
}
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
}
//下面代码是包含init()方法的公共类
public class J01_MouseEvent
{
public void init()
{
new EventTest();//???
}
}

上面是我用jdk1.4做的一个事件处理, 编译 运行都没有错,

但启动的小应用程序说我没有初始化. 不知道是怎么回事, 请指点 谢谢
搜索更多相关的解决方案: 面板  public  import  

----------------解决方案--------------------------------------------------------

如何调用你的小程序?

[此贴子已经被作者于2007-9-25 15:30:24编辑过]


----------------解决方案--------------------------------------------------------

在java里面,如果是定义类的变量,可以不必初始化,但是如果是在方法里面定义的变量就必须初始化了


----------------解决方案--------------------------------------------------------
回复:(hwoarangzk)在java里面,如果是定义类的变量...
老大 您可不可以直接告诉我哪儿错了, 我头都大了,还是找不到哪儿错了啊!
----------------解决方案--------------------------------------------------------
回复:(天涯海角)[em04]如何调用你的小程序?[ali...

我用HTML把.class文件嵌入在网页中 ,然后用 AppletViewer 执行啊!


----------------解决方案--------------------------------------------------------
哎呀 我晓得了 原来是公共类没有继承事件类啊 弄了几个小时了 .
public class J01_MouseEvent extends EventTest
{
public void init()
{
new EventTest();//???
}
}

----------------解决方案--------------------------------------------------------

不对啊

[此贴子已经被作者于2007-9-25 16:16:29编辑过]


----------------解决方案--------------------------------------------------------
MM说什么不对呢?
----------------解决方案--------------------------------------------------------
回复:(天涯海角)不对啊[align=right][color=#000...
怎么不对啊 对的啊  jdk1.4做的
----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2007-9-25 17:13:47的发言:
MM说什么不对呢?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Mytt extends JApplet
{
MyPanel p=new MyPanel();
public void init()
{
this.getContentPane().add(p);

}

}
class MyPanel extends JPanel implements MouseListener
{
JButton jb1=new JButton("击我");
JButton jb2=new JButton("按钮2");
public MyPanel()
{
this.add(jb1);
this.add(jb2);
jb1.addMouseListener(this);
jb2.addMouseListener(this);

}
@Override
public void mouseClicked(MouseEvent e) {

Object obj=e.getSource();//返回事件类
if(obj==jb1)
{
jb1.setEnabled(false);
jb1.setText("按钮1");
jb2.setEnabled(true);
jb2.setText("击我");
}
if(obj==jb2)
{
jb2.setEnabled(false);
jb2.setText("按钮2");
jb1.setEnabled(true);
jb1.setText("击我");
}

}
@Override
public void mouseEntered(MouseEvent e) {


}
@Override
public void mouseExited(MouseEvent e) {


}
@Override
public void mousePressed(MouseEvent e) {


}
@Override
public void mouseReleased(MouseEvent e) {


}


----------------解决方案--------------------------------------------------------
  相关解决方案