📄 ch6_e6_13.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class ch6_e6_13 extends Applet implements ActionListener
{
final long CONNECT_NUMBER = 200;
final double CONNECT_FEE = 0.5;
Label cardNumberLbl = new Label();
Label balanceLbl = new Label("余额:");
Label passwordLbl = new Label("密码");
TextField balanceTfd = new TextField(8);
TextField passwordTfd = new TextField(8);
Button createCard = new Button("创建");
Button sortCard = new Button("排序");
Vector phoneCardVector = new Vector();
public void init()
{
balanceTfd.setText("");
passwordTfd.setText("");
cardNumberLbl.setText("电话卡号:" +
PhoneCard200.cardNumber200);
//Long.toString(PhoneCard200.cardNumber200));
add(cardNumberLbl);
add(balanceLbl);
add(balanceTfd);
add(passwordLbl);
add(passwordTfd);
add(createCard);
passwordTfd.setEchoChar('*');
createCard.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
PhoneCard200 phoneCard;
if(ae.getSource() == createCard)
{
try
{
//创建电话卡
phoneCard = new PhoneCard200(
Double.parseDouble(balanceTfd.getText()),
passwordTfd.getText(),
CONNECT_NUMBER,
CONNECT_FEE);
//按升序插入
boolean added = false;
for(int i=0; i<phoneCardVector.size(); i++)
{
if(phoneCard.getBalance() <
((PhoneCard200)(phoneCardVector.get(i))).getBalance())
{
phoneCardVector.insertElementAt(phoneCard,i);
added = true;
break;
}
}
//若是第一张卡,或者是余额最大的卡,则加在向量的最后
if(!added)
phoneCardVector.add(phoneCard);
cardNumberLbl.setText("电话卡号:" +
PhoneCard200.cardNumber200);
balanceTfd.setText("");
passwordTfd.setText("");
repaint();
}
catch(NumberFormatException nfe)
{
showStatus("输入的余额格式不对,请重输。");
balanceTfd.setText("");
passwordTfd.setText("");
}
}
else
{
showStatus("事件" + ae.toString()
+ "未定义处理操作");
balanceTfd.setText("");
passwordTfd.setText("");
}
}
public void paint(Graphics g)
{
for(int i=0; i<phoneCardVector.size(); i++)
{
g.drawString(phoneCardVector.get(i).toString(),
10, 70+20*i);
}
}
}
class PhoneCard200
{
static long cardNumber200;
long cardNumber;
double balance;
String password;
long connectNumber;
double connectFee;
static
{
cardNumber200 = 100001;
}
public PhoneCard200(double b,String pwd,long cNum,double cFee)
{
cardNumber = cardNumber200++;
balance = b;
password = new String(pwd);
connectNumber = cNum;
connectFee = cFee;
}
public double getBalance()
{
return balance;
}
public String toString()
{
String s = "卡号:" + cardNumber
+ "余额:" + balance
+ "密码:" + password
+ "连接号:" + connectNumber
+ "连接费:" + connectFee;
return s;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -