📄 awtexample.java
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.List;
import java.util.*;
public class AWTExample extends Applet
implements TextListener, ActionListener,ItemListener
{
Employee newEmp;
Label prompt = new Label("Enter new employee information");
TextField no = new TextField(4);
TextField name = new TextField("name");
Checkbox isMgr = new Checkbox("manager");
CheckboxGroup sex = new CheckboxGroup();
Checkbox maleSex = new Checkbox("male",true,sex);
Checkbox femaleSex = new Checkbox("female",false,sex);
TextField sal = new TextField("salary");
SliderFrame sf;
List year = new List(3,false);
Choice month = new Choice();
Choice date1 = new Choice();
Choice date2 = new Choice();
TextArea result = new TextArea("",5,30);
Button reset = new Button("Reset");
Button enter = new Button("Input");
public void init() {
add(prompt);
no.setEditable(false);
add(no);
name.addTextListener(this);
add(name);
isMgr.addItemListener(this);
add(isMgr);
maleSex.addItemListener(this);
add(maleSex);
femaleSex.addItemListener(this);
add(femaleSex);
sal.addTextListener(this);
add(sal);
year.add("2000"); year.add("2001"); year.add("2002"); year.add("2003");
year.addActionListener(this); year.addItemListener(this); add(year);
month.add("Jan"); month.add("Feb"); month.add("Mar"); month.add("Apr");
month.add("May"); month.add("Jun"); month.add("July"); month.add("Aug");
month.add("Sep"); month.add("Oct"); month.add("Nov"); month.add("Dec");
month.addItemListener(this); add(month);
date1.add("0"); date1.add("1"); date1.add("2"); date1.add("3");
date2.add("0"); date2.add("1"); date2.add("2"); date2.add("3");
date2.add("4"); date2.add("5"); date2.add("6"); date2.add("7");
date2.add("8"); date2.add("9");
date1.addItemListener(this); add(date1);
date2.addItemListener(this); add(date2); add(result);
reset.addActionListener(this); add(reset);
enter.addActionListener(this); add(enter);
}
public void textValueChanged(TextEvent e) {
if (e.getSource() == name)
result.setText("Response to TextValueChanged event, name: "+
((TextField) e.getSource()).getText());
if (e.getSource() == sal) {
double initSal;
String s = ((TextField) e.getSource()).getText();
if (s.compareTo("")==0 || s.compareTo("salary")==0 || s==null)
initSal = 0;
else
initSal =
Double.valueOf(((TextField) e.getSource()).getText()).doubleValue();
// create Scrollbar window to adjust the salary
sf = new SliderFrame(initSal,Employee.getMinSal(), sal);
}
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand()=="Reset")
{
no.setText(""); name.setText(""); isMgr.setState(true);
maleSex.setState(true); sal.setText("");
year.deselect(year.getSelectedIndex());
month.select(0); date1.select(0); date2.select(0);
result.setText("no message");
}
else if (e.getActionCommand() =="Input")
{
String n = name.getText();
double s = Double.valueOf(sal.getText()).doubleValue();
char ch;
boolean mgr = isMgr.getState();
int y, m, d;
Calendar swd;
if (maleSex.getState()) ch = 'm';
else ch = 'f';
y = (year.getSelectedIndex())+2000;
m = month.getSelectedIndex()+1;
d = date1.getSelectedIndex() * 10 + date2.getSelectedIndex();
swd = Calendar.getInstance();
swd.set(y,m,d);
newEmp = new Employee(n,s,ch,mgr,swd);
no.setText(Integer.toString(newEmp.getEmpNo()));
result.setText(newEmp.toString());
}
else { result.setText(e.getActionCommand()); }
}
public void itemStateChanged(ItemEvent e) {
ItemSelectable is = e.getItemSelectable();
if (is==isMgr)
{
result.setText("Changed checkbox state: ");
if (e.getStateChange() == ItemEvent.SELECTED)
result.append("Selected");
else
result.append("Unselected");
}
else if (is == maleSex)
result.setText("Selected " + maleSex.getLabel());
else if (is == femaleSex)
result.setText("Selected " + femaleSex.getLabel());
else if (is == year)
result.setText("Selected year(index): " + ((List)is).getSelectedIndex());
else if (is == month)
result.setText("Selected month(index): " + ((Choice)is).getSelectedIndex());
else if (is == date1)
result.setText("Selected date1(index): " + ((Choice)is).getSelectedIndex());
else if (is == date2)
result.setText("Selected date2(index): " + ((Choice)is).getSelectedIndex());
}
}
class SliderFrame extends Frame
implements ActionListener,AdjustmentListener {
Scrollbar salSlider;
TextField salValue, sal_ref;
double value;
Button close = new Button("Close");
SliderFrame(double initSal, double minSal, TextField return_sal)
{
super("Enter salary");
sal_ref = return_sal;
setLayout(new BorderLayout());
salSlider =
new Scrollbar( Scrollbar.HORIZONTAL,(int)initSal,1,
(int)minSal,(int)minSal*20 );
salSlider.setUnitIncrement(1); salSlider.setBlockIncrement(50);
salSlider.addAdjustmentListener(this);
add("North", salSlider);
salValue = new TextField(Double.toString(initSal),6);
add("Center", salValue);
add("South", close);
close.addActionListener(this);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "Close")
{
sal_ref.setText(new Integer((int) value).toString());
dispose();
}
}
public void adjustmentValueChanged(AdjustmentEvent e) {
if (e.getAdjustable() == salSlider)
{
value = e.getValue();
salValue.setText(new Integer((int)value).toString());
}
}
double getValue() {
return value;
}
}
class Employee {
int m_EmpNo;
String m_EmpName;
boolean m_isMgr;
char m_EmpGender;
static int m_NextEmpNo;
static final double m_MinSalary =250;
Calendar m_StartWorkDate;
double m_EmpSalary;
static { m_NextEmpNo =1001; }
Employee(String name,double initSal,char sex,boolean mgr,Calendar wdate){
m_EmpNo = m_NextEmpNo++;
m_EmpName = new String(name);
m_isMgr = mgr;
if (initSal < m_MinSalary) System.exit(0);
m_EmpSalary = initSal;
m_EmpGender = sex;
m_StartWorkDate = wdate;
}
int getEmpNo() { return m_EmpNo; }
static double getMinSal() { return m_MinSalary; }
public String toString() {
String s;
s = "EmpNo: "+m_EmpNo +" ; Name: "+m_EmpName;
if (m_isMgr) s = s+"; manager";
if (m_EmpGender == 'm') s = s+";\nSex: male";
else s = s+";\nSex: female";
s = s + ";\nSalary: "+m_EmpSalary;
if (m_StartWorkDate != null)
s=s+";\nStart date: " + m_StartWorkDate.get(Calendar.YEAR)
+"/" + m_StartWorkDate.get(Calendar.MONTH)
+"/" + m_StartWorkDate.get(Calendar.DATE);
return s;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -