帮我看看,到底错在哪里呢?

EthanJiang0827 2002-01-04 01:12:42
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

class Gui3
{
static boolean check(int i)
{
int flag=0,j=2;
while(flag==0&&j<=(int)Math.sqrt(i))
{
if(i%j==0)
{
flag=1;
break;
}
else
j++;
}
if(flag==0)
return true;
else
return false;
}

static String [] found()
{
int length=0,i,j;
String[] member=new String[20];
Vector v=new Vector();
Random r=new Random();
for(i=100;i<=200;i++)
{
if(check(i))
v.add(new Integer(i));
}
for(i=0;i<15;i++)
{
j=(int)(20*r.nextDouble());
member[i]=(v.get(j)).toString();
}
return member;
}

public static void main(String[] args)
{
final String[] member=found();
JFrame f=new JFrame("随机素数");
Container c=f.getContentPane();
c.setLayout(new BorderLayout());
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
p3.setLayout(new BorderLayout());
final JTextField t=new JTextField(12);
final JComboBox b=new JComboBox();
JLabel l1=new JLabel("结果:");
final JLabel l2=new JLabel();
JButton b1=new JButton("产生");
final JButton b2=new JButton("查找");
b2.setEnabled(false);
p1.add(b);
p1.add(b1);
p2.add(t);
p2.add(b2);
p3.add(l1,BorderLayout.WEST);
p3.add(l2,BorderLayout.EAST);
c.add(p1,BorderLayout.NORTH);
c.add(p2,BorderLayout.CENTER);
c.add(p3,BorderLayout.SOUTH);
f.pack();
f.show();

f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
for(int i=0;i<member.length;i++)
b.addItem(member[i]);
}
});

t.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
b2.setEnabled(true);
}
});

b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int temp=Integer.parseInt(t.getText());
int flag=0,i;
if(temp>200||temp<100)
flag=2;
else if(!check(temp))
flag=3;
else if((temp<=200&&temp>=100)&&check(temp))
{
/*for(i=0;i<member.length;i++)
{
if(((t.getText()).compareTo(member[i]))==0)
{
flag=1;
member[i]+="*";
}
}*/
}
b.removeAllItems();
for(i=0;i<member.length;i++)
b.addItem(member[i]);
if(flag==1)
l2.setText(temp+"在表中!");
else if(flag==0)
l2.setText(temp+"不在表中!");
else if(flag==2)
l2.setText("请输入一个100与200之间的数!");
else if(flag==3)
l2.setText(temp+"不是素数!");
}
});
}

}

经过我多次尝试,我觉得是我注释的那一段有问题,可是我百思不得其解,帮帮忙好吗?
...全文
120 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
camry_camry 2002-01-07
  • 打赏
  • 举报
回复
我的怀疑:
你在combobox中加入了null的item.然后进行了对这种item的操作。
在填写combobox的时候应该赋初值给每个item.
EthanJiang0827 2002-01-07
  • 打赏
  • 举报
回复
我的天啊!原来要求就是要20个的,我怎么会写15的呢?真的不知道那个时候自己在做什么,谢了阿,各位!
jin2001 2002-01-07
  • 打赏
  • 举报
回复
//for(i=0;i<15;i++)
for(i=0;i<20;i++)
{
j=(int)(20*r.nextDouble());
member[i]=(v.get(j)).toString();
}
member数组定义有20个元素,这里只赋值了15个元素,而member.length为20,
组合框中加入了空值

0legend 2002-01-06
  • 打赏
  • 举报
回复
我输入‘123’显示‘157’一个下拉菜单,里面一堆素数,全是100-200间的
我去掉它重新输入就没有变化了
EthanJiang0827 2002-01-06
  • 打赏
  • 举报
回复
我还是不对啊!异常如下:
Exception occurred during event dispatching:
java.lang.NullPointerException
at java.lang.String.compareTo(String.java:788)
at Gui3$4.actionPerformed(Gui3.java:115)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
at java.awt.Component.processMouseEvent(Component.java:3717)
at java.awt.Component.processEvent(Component.java:3546)
at java.awt.Container.processEvent(Container.java:1164)
at java.awt.Component.dispatchEventImpl(Component.java:2595)
at java.awt.Container.dispatchEventImpl(Container.java:1213)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
at java.awt.Container.dispatchEventImpl(Container.java:1200)
at java.awt.Window.dispatchEventImpl(Window.java:912)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)

注意,那个循环是不注释的,这里只是为了说明我的感觉罢了!谢谢啊!
EthanJiang0827 2002-01-06
  • 打赏
  • 举报
回复
那好吧,我在试试,不过我在JB4种也一样的错误啊!
0legend 2002-01-06
  • 打赏
  • 举报
回复
我想告诉你,可以用,我试了
EthanJiang0827 2002-01-06
  • 打赏
  • 举报
回复
我忘了,你们调试一下不就知道了吗?谢谢了
EthanJiang0827 2002-01-05
  • 打赏
  • 举报
回复
怎么刷来唰去还在第四页呢?怎么不回去第一页呢?csdn现在的东东好像没有以前那么好了哦!也不知道是不是我的机器笨啊!
EthanJiang0827 2002-01-05
  • 打赏
  • 举报
回复
可是我在JPadPro中,连上JDK1.3就会出问题啊,如果在那个循环里面加入break就好了,好像是循环的问题,可是我看来看去也觉得不可能产生死循环啊!各位大哥可以帮我调试一下吗?谢了阿!
camry_camry 2002-01-05
  • 打赏
  • 举报
回复
得到了什么Exception?
EthanJiang0827 2002-01-05
  • 打赏
  • 举报
回复
没有人可以帮忙吗?贴下代码运行一下都不可以吗?不要告诉我这里的人都是冷冰冰的哦!不会是分数太低的缘故吧?来到这里是互相帮助,对吗?我真的很着急啊!这是我的连着的第三次发言了,也就是说如果你们不回答得话,我也不能催了,帮帮忙吧!
weity 2002-01-04
  • 打赏
  • 举报
回复
关注
0legend 2002-01-04
  • 打赏
  • 举报
回复
只看这段,没问题吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧