当前位置: 代码迷 >> Java相关 >> Applet小程序在浏览器运行出错
  详细解决方案

Applet小程序在浏览器运行出错

热度:184   发布时间:2006-04-07 13:51:00.0
Applet小程序在浏览器运行出错

求助:
我的Applet程序在JBuilder9环境下运行正确,但是在浏览器中运行时点击按钮不能响应事件,
提示如下错误:java.lang.NullPointerException

at cutedraw.workflow.NewFile(workflow.java:217)

at cutedraw.workflow.newButton_actionPerformed(workflow.java:198)

at cutedraw.ActionListener.actionPerformed(workflow.java:343)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

搜索更多相关的解决方案: Applet  浏览器  java  workflow  

----------------解决方案--------------------------------------------------------
源代码都没有,怎么看
----------------解决方案--------------------------------------------------------

我也出现这个问题 我用的是JCreateo 3.5
代码:
import java.awt.*;
import java.awt.event.*;
public class Class4
{ public static void main(String args[])
{
new FrameInOut();
}
} class FrameInOut extends Frame implements ActionListener
{ Label label;
TextField input,output;

FrameInOut()
{
super("图形界面的java Application程序!");
label=new Label("请输入你的名字:");
input=new TextField(6);
output=new TextField(25);
setLayout(new FlowLayout());
add(label);
add(input);
add(output);
input.addActionListener(this);
setSize(300,200);
show();
}
public void actionPerformed(ActionEvent e)
{
output.setText(input.getText()+",新年快乐!");
}
}


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

你的代码没有问题啊,只是你用了一些老的方法而已
运行非常正常
show();
把它改为setVisible(true)更好一些


----------------解决方案--------------------------------------------------------
程序确实有问题, 下面是修改后的代码:
程序代码:

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

public class Class4 extends Applet
{
public void init()
{
new FrameInOut();
}
}

class FrameInOut extends JFrame implements ActionListener
{
JLabel label;
JTextField input,output;

FrameInOut()
{
super(\"图形界面的java Application程序!\");
label=new JLabel(\"请输入你的名字:\");
input=new JTextField(6);
output=new JTextField(25);
output.setEditable(false);
setLayout(new java.awt.FlowLayout());
add(label);
add(input);
add(output);
input.addActionListener(this);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
output.setText(input.getText()+\",新年快乐!\");
}
}


----------------解决方案--------------------------------------------------------
另外我建议你不要在Applet 里用什么Frame 或 JFrame. 建议直接嵌入式比较好,以下为修改后的代码:
程序代码:

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

public class Class4 extends Applet
{
public void init()
{
add(new FrameInOut());
}
}

class FrameInOut extends JPanel implements ActionListener
{
JLabel label;
JTextField input,output;

FrameInOut()
{
label=new JLabel(\"请输入你的名字:\");
input=new JTextField(6);
output=new JTextField(25);
output.setEditable(false);
setLayout(new java.awt.FlowLayout());
add(label);
add(input);
add(output);
input.addActionListener(this);
//setSize(300,200);
//setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
output.setText(input.getText()+\",新年快乐!\");
}
}


其相关html 文件:
程序代码:

<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>
<APPLET CODE=\"Class4.class\" WIDTH=800 HEIGHT= 700>
</APPLET>
</BODY>
</HTML>



----------------解决方案--------------------------------------------------------
以下是引用johnson1982在2006-4-7 17:35:00的发言:

我也出现这个问题 我用的是JCreateo 3.5
代码:
import java.awt.*;
import java.awt.event.*;
public class Class4
{ public static void main(String args[])
{
new FrameInOut();
}
} class FrameInOut extends Frame implements ActionListener
{ Label label;
TextField input,output;

FrameInOut()
{
super("图形界面的java Application程序!");
label=new Label("请输入你的名字:");
input=new TextField(6);
output=new TextField(25);
setLayout(new FlowLayout());
add(label);
add(input);
add(output);
input.addActionListener(this);
setSize(300,200);
show();
}
public void actionPerformed(ActionEvent e)
{
output.setText(input.getText()+",新年快乐!");
}
}

你这个程序做为一个application运行的,是一点问题都没有,但是做为applet却不行,因为你没有继承自applet


----------------解决方案--------------------------------------------------------
null 写的没有问题 可以正常运行
----------------解决方案--------------------------------------------------------

谢谢 !!


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