switch(WhichProduct){ case 0: CurrentBasePrice=ProdOneBaseValue; break; case 1: CurrentBasePrice=ProdTwoBaseValue; break; case 2: CurrentBasePrice=ProdThreeBaseValue; break; case 3: CurrentBasePrice=ProdFourBaseValue; break; }
switch(WhichChoice){ case 3: CurrentModifier=multiplierSmall; break; case 2: CurrentModifier=multiplierMedium; break; case 1: CurrentModifier=multiplierLarge; break; case 0: CurrentModifier=multiplierJumbo; break; }
Note: xxx.java uses or overrides a deprecated API. Note:Recompile with -deprecation for details 是用了过时的api对当前程序没有影响。 List的addItem已经不用,用add。 你可以javac -deprecation e:\\order.java来看你用了多少个过时的api。
而且,不至list出错,choice等都是这个错误,不明白为什么
怎么不用新事件模型?
就是somecomponent.add***listener()
处理事件用对应的方法。
错误是在页面开始加载applet时就报错的,时间处理还没有开始。我觉得可能不是这个问题。
封住不必要的代码。
直接在
List ProductList=new List(4,false);
ProductList.addItem("Oscar");
ProductList.addItem("Lionhead");
ProductList.addItem("Jack Dempsey");
ProductList.addItem("Angelfish");
后添加select(1)看成不成功。
你把事件包包进去了没有:import java.awt.event.*;
直接添加select(1)是成功的。事件包(import java.awt.event.*;)也包进去了亚,还是出错。我用的是jdk1.3.1_02编译的
源代码给贴上把:
---------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
public class order extends java.applet.Applet
{
private double SubTotalOne=0.0;
private double Total=0.0;
private double multiplierSmall=0.5;
private double multiplierMedium=1.0;
private double multiplierLarge=1.5;
private double multiplierJumbo=2.25;
private double ProdOneBaseValue=1.0;
private double ProdTwoBaseValue=1.33;
private double ProdThreeBaseValue=1.75;
private double ProdFourBaseValue=8.75; private Button SubmitButton;
private Button ClearButton;
private Button QuitButton;
private Checkbox ReapeatCustCheckBox;
private Checkbox MailBox;
private Checkbox EmailBox;
private Checkbox PhoneBox;
private List ProductList;
private Choice SizeChoice;
private Scrollbar OrderAmountSlider;
private Label SubTotalLabel=new Label("$0.0");
private Label TotalLabel=new Label("$0.0");
private Label AmountLabel=new Label("$0.0");
private Label PricePerItemLabel=new Label("$0.0");
private TextField NameEntryField=new TextField(25);
private TextField ZipEntryField=new TextField(5);
private TextField StreetEntryField=new TextField(25);
private TextField CityEntryField=new TextField(25);
private TextArea CommentTextArea=new TextArea(4,25);
public void init()
{
Button SubmitButton=new Button("Submit");
add(SubmitButton);
Button ClearButton=new Button("Clear");
add(ClearButton);
Button QuitButton=new Button("Quit");
add(QuitButton);
Checkbox RepeatCustCheckBox=new Checkbox("Repeat Customer?");
add(RepeatCustCheckBox);
add(new Label("How would you like to be contacted?"));
CheckboxGroup ContactMethodGroup;
ContactMethodGroup=new CheckboxGroup();
Checkbox EmailBox=new Checkbox("Email",ContactMethodGroup,true);
Checkbox PhoneBox=new Checkbox("Phone",ContactMethodGroup,false);
Checkbox MailBox=new Checkbox("usMail",ContactMethodGroup,false);
add(EmailBox);
add(PhoneBox);
add(MailBox);
add(new Label("Products"));
List ProductList=new List(4,false);
ProductList.addItem("Oscar");
ProductList.addItem("Lionhead");
ProductList.addItem("Jack Dempsey");
ProductList.addItem("Angelfish");
ProductList.select(1); add(ProductList);
add(new Label("Size:")); Choice SizeChoice=new Choice();
SizeChoice.addItem("Jumbo");
SizeChoice.addItem("Large");
SizeChoice.addItem("Medium");
SizeChoice.addItem("Small");
add(SizeChoice);
add(new Label("Amount:"));
Scrollbar OrderAmountSlider=new Scrollbar(Scrollbar.VERTICAL,0,0,0,144);
add(OrderAmountSlider);
add(AmountLabel);
add(new Label("Subtotal:"));
add(SubTotalLabel);
add(new Label("Total:"));
add(TotalLabel);
add(new Label("Your information:"));
add(new Label("Name:"));
add(NameEntryField);
add(new Label("Street:"));
add(StreetEntryField);
add(new Label("City:"));
add(CityEntryField);
add(new Label("Zip:"));
add(ZipEntryField);
add(new Label("Comments:"));
add(CommentTextArea);
//resetValues();
}
public void resetValues(){
SubTotalLabel.setText("$0.0");
TotalLabel.setText("$0.0");
AmountLabel.setText("$0.0");
PricePerItemLabel.setText("$0.0");
ProductList.select(0);
SizeChoice.select(0);
OrderAmountSlider.setValue(0);
NameEntryField.setText("");
StreetEntryField.setText("");
CityEntryField.setText("");
ZipEntryField.setText("");
}
public boolean handleEvent(Event InEvent)
{
if(InEvent.id==Event.SCROLL_LINE_UP||InEvent.id==Event.SCROLL_LINE_DOWN){
updateValues();
}else
if(InEvent.target==ProductList){
updateValues();
}else
if(InEvent.target==ClearButton){
resetValues();
}else
if(InEvent.target==QuitButton){
//Alabel.setText("Quit Button");
}else
if(InEvent.target==SubmitButton){
//Alabel.setText("Submit Button");
}
return super.handleEvent(InEvent);
}
public boolean action(Event InEvent,Object SomeObject){
if(InEvent.target==SizeChoice){
updateValues();
return true;
}else
if(InEvent.target==NameEntryField){
return true;
}else
return false;
} private void updateValues(){
int WhichChoice=SizeChoice.getSelectedIndex();
int AmountSelected=OrderAmountSlider.getValue();
int WhichProduct=ProductList.getSelectedIndex();
double CurrentBasePrice=0.0;
double CurrentModifier=0.0;
switch(WhichProduct){
case 0:
CurrentBasePrice=ProdOneBaseValue;
break;
case 1:
CurrentBasePrice=ProdTwoBaseValue;
break;
case 2:
CurrentBasePrice=ProdThreeBaseValue;
break;
case 3:
CurrentBasePrice=ProdFourBaseValue;
break;
}
switch(WhichChoice){
case 3:
CurrentModifier=multiplierSmall;
break;
case 2:
CurrentModifier=multiplierMedium;
break;
case 1:
CurrentModifier=multiplierLarge;
break;
case 0:
CurrentModifier=multiplierJumbo;
break;
}
AmountLabel.setText(Integer.toString(AmountSelected)+"");
double PricePerItem=(CurrentBasePrice * CurrentModifier);
PricePerItemLabel.setText(Double.toString(PricePerItem)+"");
double SubTotal=(CurrentBasePrice+CurrentModifier*AmountSelected);
SubTotalLabel.setText(Double.toString(SubTotal)+"");
TotalLabel.setText(SubTotalLabel.getText());
}
}
--------------------------------------------------------------------
Note: xxx.java uses or overrides a deprecated API.
Note:Recompile with -deprecation for details
哦,怪了。那么你运行时,那么组件能够正常使用吗?尤其是scroll,我这边一滚动就出上述错误。
是不是我的环境有问题????????????
我安装的是jdk1.3.1_02,其他什么都设好了。是类包吗?
请求帮助!!!!!!!!!!!!!!
Note:Recompile with -deprecation for details
是用了过时的api对当前程序没有影响。
List的addItem已经不用,用add。
你可以javac -deprecation e:\\order.java来看你用了多少个过时的api。
不用下载api,你用当前包新的api代替就行了。因为在当前包中有新的api,所以系统才提示你就用新的api代替旧的api。
如果上面所说的addItem已经不用,用add。你看一下addItem是不是已经用横线划掉了。
private List ProductList;
然后在init方法理由声明了一个同名的ProductList对象:
List ProductList=new List(4,false);
ProductList.addItem("Oscar");
ProductList.addItem("Lionhead");
ProductList.addItem("Jack Dempsey");
ProductList.addItem("Angelfish");
ProductList.select(1);
add(ProductList);
那么当init方法结束后,Applet的面板上应该有一个List对象,就是你看到的那个,但这个对象不是你声明的私有变量ProductList, 这时这个ProductList应该是null,那么在以后的其他方法中如果用到这个变量就会抛出空指针异常。(我没有实际运行你的程序,也许会有不准确的地方)
------------------------------------
谢谢各位的帮助,谢谢!