public class Car extends JApplet {
JTextArea Xout = new JTextArea(20, 20);
public void init() {
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JLabel("Car"));
cp.add(new JScrollPane(Xout));
XCar car = new XCar();
car.left.window.rollup();
car.wheel[0].inflate(32);
}
class Engine {
public Engine (){
Xout.append("Engine created" +"\n");
}
public void start() {}
public void rev() {}
public void stop() {}
}
class Wheel {
private int Number;
public Wheel (int i){
Number = i;
Xout.append("Wheel " + Number + " created" +"\n");
}
public void inflate(int psi) {
Xout.append("Wheel " + Number + " inflated to:" + psi + "\n");
}
}
class Window {
private int Number;
public Window (int i){
Number = i;
Xout.append("Window " + Number + " created" +"\n");
}
public void rollup() {
Xout.append("Window " + Number + " rolled Up\n");
}
public void rolldown() {
Xout.append("Window " + Number + " rolled Down\n");
}
}
class Door {
private int Number;
public Window window;
public Door (int i){
Number = i;
window = new Window(Number);
Xout.append("Door " + Number + " created" +"\n");
}
public void open() {
Xout.append("Door " + Number + " open" +"\n");
}
public void close() {
Xout.append("Door " + Number + " close" +"\n");
}
}
class XCar {
public Engine engine = new Engine();
public Wheel[] wheel = new Wheel[4];
public Door left = new Door(1),
right = new Door(2); // 2-door
public XCar() {
for(int i = 0; i < 4; i++)
wheel[i] = new Wheel(i+1);
Xout.append("Car assembled" +"\n");
}
}
public static void main(String[] args) {
Console.run(new Car(), 250, 200);
}
} ///: