//就会抛出异常。
//为什么??
//Convert.java,主类。
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
public class Convert extends JApplet implements ActionListener
{
private JLabel clbl,llbl,rlbl,ulbl,ilbl,res;
private JTextField ctxt,ltxt,rtxt,utxt,itxt,result;
private Container c;
private FlowLayout layout;
private JTextArea area;
private JPanel npnl,spnl;
private JButton z1btn,z2btn,conbtn;
int I=0;
double U=0.0;
//Component xx=new Component();
Component[] z1=new Component[100];
//Component[] z2=new Component[100];
public void init()
{
layout=new FlowLayout();
c=getContentPane();
c.setLayout(layout);
ilbl=new JLabel("I=");
ulbl=new JLabel("U=");
clbl=new JLabel("C=");
llbl=new JLabel("L=");
rlbl=new JLabel("R=");
res=new JLabel("Result=");
itxt=new JTextField(15);
utxt=new JTextField(15);
ctxt=new JTextField(15);
ltxt=new JTextField(15);
rtxt=new JTextField(15);
result=new JTextField(15);
area=new JTextArea(20,40);
area.append("please enter I,U: ");
z1btn=new JButton("Add to z1[ ]");
z2btn=new JButton("Add to z2[ ]");
conbtn=new JButton("convert");
//ScrollPane pn=new ScrollPane();
//area.add(pn);
c.add(ilbl);
itxt.addActionListener(this);
c.add(itxt);
c.add(ulbl);
utxt.addActionListener(this);
c.add(utxt);
c.add(clbl);
c.add(ctxt);
c.add(llbl);
c.add(ltxt);
c.add(rlbl);
c.add(rtxt);
z1btn.addActionListener(this);
c.add(z1btn);
z2btn.addActionListener(this);
c.add(z2btn);
c.add(area);
c.add(conbtn);
c.add(res);
c.add(result);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itxt)
{
I=Integer.parseInt(itxt.getText());
area.append("I="+I);
}
else if(e.getSource()==utxt)
{
U=Double.parseDouble(utxt.getText());
area.append("\nU="+U);
}
else if(e.getSource()==z1btn)
{
int j=0;
double rt=Double.parseDouble(rtxt.getText());
double lt=Double.parseDouble(ltxt.getText());
double ct=Double.parseDouble(ctxt.getText());
try{
z1[j].setComponent(rt,lt,ct);
j++;
area.append(z1[j].toString());
//问题就出在这里,一旦我试图用输入的L,R,C创建对象时,
//就会抛出异常。
}
catch(Exception exc)
{
JOptionPane.showMessageDialog(null,exc.toString());
}
}
}
}
//Component类,(自定义的类)
public class Component
{
final double j=1.3,w=2;
public double r,l,c;
public Component()
{
this.setComponent(9999,9999,9999);
}
public void setComponent(double a,double b,double d)
{
r=a;
l=b;
c=d;
}
double Resist()
{
return(r+j*w*l-j*w*c);
}
double calculate1(Component z1,Component z2)
{
return (z1.Resist()+z2.Resist());
}
double calculate2(Component z1,Component z2,Component z3)
{
double temp=(calculate1(z2,z3)*z1.Resist())/(z1.Resist()+calculate1(z2,z3));
return (temp);
}
}
//下面是自己定义的HTTP文件
<html>
<body>
<applet height="550" width="456" code="Convert.class">
</applet>
</body>
</html>
6 个解决方案
#1
望高手能指点指点,我是JAVA的初学者。
谢谢。
邮箱:xiaohuang1998@sohu.com
谢谢。
邮箱:xiaohuang1998@sohu.com
#2
你没有初始化数组中的每个对象。
#3
Component[] z1=new Component[100];只是初始化了数组而已,但没有初始化对象
Component[i]=new ...
不然直接对Component[i]进行操作,就会抛出NullPointerException了
Component[i]=new ...
不然直接对Component[i]进行操作,就会抛出NullPointerException了
#4
谢谢各位提点,不过如何初始化对象啊,
我试了好多方法都不能初始化数组中的各个对象啊。。
高人能否详细解答一下我的问题。。。。
我试了好多方法都不能初始化数组中的各个对象啊。。
高人能否详细解答一下我的问题。。。。
#5
z1[i]使用之前先new一下不就好了,不然是null
#6
我改了代码,if(e.getSource()==itxt)
{
I=Integer.parseInt(itxt.getText());
area.append("I="+I);
for(int xx=1;xx<I;xx++)
{
z1[xx]=new Component();
}
}
还是会抛出异常啊?我定义的z1[]对象组要求是全局的。你帮我改下代码,可以吗?我水平实在。。。
{
I=Integer.parseInt(itxt.getText());
area.append("I="+I);
for(int xx=1;xx<I;xx++)
{
z1[xx]=new Component();
}
}
还是会抛出异常啊?我定义的z1[]对象组要求是全局的。你帮我改下代码,可以吗?我水平实在。。。
#1
望高手能指点指点,我是JAVA的初学者。
谢谢。
邮箱:xiaohuang1998@sohu.com
谢谢。
邮箱:xiaohuang1998@sohu.com
#2
你没有初始化数组中的每个对象。
#3
Component[] z1=new Component[100];只是初始化了数组而已,但没有初始化对象
Component[i]=new ...
不然直接对Component[i]进行操作,就会抛出NullPointerException了
Component[i]=new ...
不然直接对Component[i]进行操作,就会抛出NullPointerException了
#4
谢谢各位提点,不过如何初始化对象啊,
我试了好多方法都不能初始化数组中的各个对象啊。。
高人能否详细解答一下我的问题。。。。
我试了好多方法都不能初始化数组中的各个对象啊。。
高人能否详细解答一下我的问题。。。。
#5
z1[i]使用之前先new一下不就好了,不然是null
#6
我改了代码,if(e.getSource()==itxt)
{
I=Integer.parseInt(itxt.getText());
area.append("I="+I);
for(int xx=1;xx<I;xx++)
{
z1[xx]=new Component();
}
}
还是会抛出异常啊?我定义的z1[]对象组要求是全局的。你帮我改下代码,可以吗?我水平实在。。。
{
I=Integer.parseInt(itxt.getText());
area.append("I="+I);
for(int xx=1;xx<I;xx++)
{
z1[xx]=new Component();
}
}
还是会抛出异常啊?我定义的z1[]对象组要求是全局的。你帮我改下代码,可以吗?我水平实在。。。