当前位置: 代码迷 >> Java相关 >> [求助]将Applet程序改为应用程序遇到的问题
  详细解决方案

[求助]将Applet程序改为应用程序遇到的问题

热度:153   发布时间:2006-11-19 11:59:05.0
[求助]将Applet程序改为应用程序遇到的问题

菜鸟问题:
这是一个Applet的选举程序,我将它改为一般的应用程序时本来应该有选举窗口弹出来的,但是却只有Press any key to continue 探出,好像没有执行里面的函数~

import java.awt.*;
import java.awt.event.*;
import java.util.StringTokenizer;

class selects extends Frame implements ActionListener
{

class win extends Frame
{
TextArea b2;
Panel t=new Panel();
win(String s)
{
super(s);
setSize(400,400);
setBackground(Color.white);
setVisible(false);
b2=new TextArea("\n\n\t\t************************\n\n\t\t^_^ 欢迎使用本选举程序\n\n\t\t************************\n\n\n 本程序为用户提供了处理选举人和统计选举人数的功能\n\n 用户最多可输入十个候选人,每位投票人最多可以投三票,多\n 投视为作废。投票结束后程序可以自动按票数多少对选举人进行\n 排序。");
add(b2);
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
setVisible(false);
System.exit(0);
}
});
}
}

Label 候名字=new Label("首先输入候选人的名字(人数不超过10,名字间用头号分隔)"),
统计选票=new Label("请用下面的选择框统计选票:",Label.CENTER),
结果=new Label("选举结果:");
Button 确认=new Button("确认"),取消=new Button("取消"),
确定=new Button("确定"),刷新=new Button("刷新"),
排序=new Button("排序");
Button b1=new Button("选举规则");
TextField name=new TextField(48);
TextField voteMessage=new TextField(46);
Checkbox checkbox[]=new Checkbox[10];
TextField personVote[]=new TextField[10];
int count[]=new int [10], totalVote=0, peopleNumber=0; Panel p2_1=new Panel();
int 有效人数=3, 废票数=0, 弃权票数=0;
public selects()
{
setLayout(new GridLayout(3,1));
Panel p1=new Panel(),
p1_1=new Panel(),p1_2=new Panel(),p1_3=new Panel(),p1_4=new Panel();
p1.setLayout(new BorderLayout());
p1_1.add(候名字);p1_2.add(name);
p1_3.add(确认);p1_3.add(取消);p1_3.add(统计选票);p1_4.add(b1);
p1.add(p1_1,BorderLayout.NORTH);
p1.add(p1_2,BorderLayout.CENTER);
p1.add(p1_3,BorderLayout.SOUTH);
p1.add(p1_4,BorderLayout.EAST);
Panel p2=new Panel(),
p2_2=new Panel();
p2.setLayout(new BorderLayout());
p2.setBackground(Color.yellow);
p2_1.setLayout(new GridLayout(2,5));
p2_2.add(确定);p2_2.add(刷新);p2_2.add(排序);
p2.add(p2_1,BorderLayout.CENTER);
p2.add(p2_2,BorderLayout.SOUTH);
for(int i=0;i<=9;i++) //添加复选框。
{
checkbox[i]=new Checkbox();
p2_1.add(checkbox[i]);
}
Panel p3=new Panel(), p3_1=new Panel(),
p3_2=new Panel();
p3.setLayout(new BorderLayout());
p3_1.add(结果);
p3_1.add(voteMessage);
p3_2.setLayout(new GridLayout(10,1));
for(int i=0;i<=9;i++)
{ personVote[i]=new TextField();
p3_2.add(personVote[i]);
}
ScrollPane Scroll=new ScrollPane(); Scroll.add(p3_2);
p3.add(p3_1,BorderLayout.NORTH);
p3.add(Scroll,BorderLayout.CENTER);
add(p1);add(p2);add(p3);
b1.addActionListener(this);
确认.addActionListener(this);
取消.addActionListener(this);
确定.addActionListener(this);
刷新.addActionListener(this);
排序.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s[]=new String[10];
if(e.getSource()==确认)
{
p2_1.removeAll();
String s_name=name.getText();
StringTokenizer fenxi=new StringTokenizer(s_name,",,");
peopleNumber=fenxi.countTokens();
int i=0;
while(fenxi.hasMoreTokens())
{
s[i]=fenxi.nextToken();
p2_1.add(checkbox[i]);
checkbox[i].setLabel(s[i]);
i++;
}
for(int k=0;k<peopleNumber;k++)
{
personVote[k].setText(null);
}
}
else if(e.getSource()==取消)
{
name.setText(null);
确认.setEnabled(true);
for(int k=0;k<peopleNumber;k++)
{
personVote[k].setText(null);
}
}
else if(e.getSource()==确定)
{
totalVote=totalVote+1;
确认.setEnabled(false);
int number=0;
for(int k=0;k<peopleNumber;k++)
{
if(checkbox[k].getState())
{
number++;
}
}

if(number>有效人数)
{
废票数++;
for(int k=0;k<peopleNumber;k++)
{
checkbox[k].setState(false);
}
}
else if(number==0)
{
弃权票数++;
}
else if(number>0&&number<=有效人数)
{
for(int k=0;k<peopleNumber;k++)
{
if(checkbox[k].getState())
{
count[k]=count[k]+1;
checkbox[k].setState(false);
personVote[k].setText(checkbox[k].getLabel()+" 的得票数:"+count[k]);
}
else
{
personVote[k].setText(checkbox[k].getLabel()+" 的得票数:"+count[k]);
}
}
}
voteMessage.setText("已统计了:"+totalVote+"张选票,其中弃权票:"+弃权票数+" 作废票:"+废票数);

}
else if(e.getSource()==排序)
{
for(int i=0;i<peopleNumber;i++)
{
for(int j=i+1;j<peopleNumber;j++)
{
if(count[j]>count[i])
{
String str_temp=personVote[i].getText();
personVote[i].setText(personVote[j].getText());
personVote[j].setText(str_temp);
int nnn=count[i];
count[i]=count[j];
count[j]=nnn;
}

}
}
排序.setEnabled(false);
确定.setEnabled(false);
}
else if(e.getSource()==刷新)
{
totalVote=0;
voteMessage.setText("已统计了:"+totalVote+"张选票");
name.setText(null);
确认.setEnabled(true);
确定.setEnabled(true);
排序.setEnabled(true);
for(int i=0;i<=4;i++)
{
count[i]=0;
personVote[i].setText(null);
p2_1.removeAll();
}
}
else if(e.getSource()==b1)
{
win qq=new win("选举规则窗口");
qq.setVisible(true);
}
}

}
public class select
{
public static void main(String args[])
{
//selects tt=
new selects();
//tt.selects();
}
}
这个程序修改于清华――JAVA2使用教程

搜索更多相关的解决方案: Applet  应用程序  

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