Вот код ~2010-2013 гг., файл называется Hauptmenu.java:

Код:
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Date;
import java.util.Vector;

import java.io.*;

/*
 * <APPLET
CODEBASE = "./JAR_Applet"
ARCHIVE = "JAR_Applet.jar"
CODE = "JAR_Applet/JAR_Applet.class"
NAME = "TestApplet"
>

 * */
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Hauptmenu extends Applet implements Runnable {
	private static int status;
	private Panel panel;
	private Panel panelGame;
	private static Label lbMoney;
	
	private static long einwohner;
	private static long money;

	private static long pbau;
	private static long hbau;
	private static long fbau;
	private static long pobau;
	private static long kbau;
	private static long sbau;
	
	private static long zeit;
	private static long anzArbeitslos;
	private static long anzStarb;
	private static long anzKriminalitaet;

	private static int posxK[];
	private static int maxxK;
	private static int posxPB[];
	private static int maxxPB;
	private static int posxH[];
	private static int maxxH;
	private static int posxF[];
	private static int maxxF;
	private static int posxPO[];
	private static int maxxPO;
	private static int posxS[];
	private static int maxxS;
	
	private java.net.URL urlLK;
	private java.net.URL urlPB;
	private java.net.URL urlH;
	private java.net.URL urlF;
	private java.net.URL urlP;
	private java.net.URL urlS;
	private java.net.URL urlK;
	private java.net.URL urlMus;
	
	private int tag;
	private int monat;
	private int jahr;
	
//	private static int items[];

	public static String getMonat(int m)
	{
    String monat;
    monat = "";
    if(m == 1)
    	monat = "Januar";
    if(m == 2)
    	monat = "Februar";
    if(m == 3)
    	monat = "März";
    if(m == 4)
    	monat = "April";
    if(m == 5)
    	monat = "Mai";
    if(m == 6)
    	monat = "Juni";
    if(m == 7)
    	monat = "Juli";
    if(m == 8)
    	monat = "August";
    if(m == 9)
    	monat = "September";
    if(m == 10)
    	monat = "Oktober";
    if(m == 11)
    	monat = "November";
    if(m == 12)
    	monat = "Dezember";
    
    return monat;
	}
	
	public static Panel command()
	{
    Button btnBauHaeuser;
    Button btnBauPlattenBau;
    Button btnBauFabrik;
    Button btnBauPolizeistation;
    Button btnBauKrankenhaus;
    Button btnBauSchule;

    Panel panelCommand = new Panel();
    {
    	panelCommand.setLayout(new GridLayout(0,5));
    	btnBauHaeuser = new Button("Neue Häuser bauen");
    	{
        btnBauHaeuser.addMouseListener(new MouseListener(){
	
        	@Override
        	public void mouseClicked(MouseEvent arg0) {}
	
        	@Override
        	public void mouseEntered(MouseEvent arg0) {}
	
        	@Override
        	public void mouseExited(MouseEvent arg0) {}
	
        	@Override
        	public void mousePressed(MouseEvent arg0) {}
	
        	@Override
        	public void mouseReleased(MouseEvent arg0) 
        	{
            for(int j=0; j<10; j++)
            {
            	posxH[maxxH] = (int)Math.floor(Math.random()*60) + 1;
            	maxxH ++;
            }
            hbau += 10;
            money -= 10000;
            einwohner += 20;
            anzArbeitslos += 20;
            /*lbMoney.setVisible(false);            
            lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos + ", Datum:" + tag + " " + getMonat(monat) + " " + jahr);
            lbMoney.setVisible(true);*/            
        	}
        	
        }
        );
    	}
    }

    panelCommand.add(btnBauHaeuser);

    btnBauPlattenBau = new Button("Neuer Plattenbau bauen");
    {
    	btnBauPlattenBau.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent arg0) {}

        @Override
        public void mouseReleased(MouseEvent arg0) 
        {
        	for(int j=0; j<10; j++)
        	{
            posxPB[maxxPB] = (int)Math.floor(Math.random()*60) + 1;
            maxxPB ++;
        	}
        	pbau += 10;
        	money -= 100000;
        	einwohner += 1000;
        	anzArbeitslos += 1000;
/*        	lbMoney.setVisible(false);
        	lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos);
        	lbMoney.setVisible(true);*/        	
        }

    	}
    	);
    }
    panelCommand.add(btnBauPlattenBau);

    btnBauFabrik = new Button("Neue Fabrik bauen");
    {
    	btnBauFabrik.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent arg0) {}

        @Override
        public void mouseReleased(MouseEvent arg0) 
        {
        	money -= 500000;
        	anzArbeitslos -= 1000;
        	fbau += 1;
        	posxF[maxxF] = (int)Math.floor(Math.random()*60) + 1;
        	maxxF ++;
        	
/*        	lbMoney.setVisible(false);
        	lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos);
        	lbMoney.setVisible(true);*/        	
        }

    	}
    	);
    }
    panelCommand.add(btnBauFabrik);
    
    
    btnBauPolizeistation = new Button("Neue Polizeistation bauen");
    {
    	btnBauPolizeistation.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent arg0) {}

        @Override
        public void mouseReleased(MouseEvent arg0) 
        {
        	money -= 10000;
        	anzArbeitslos -= 100;
        	posxPO[maxxPO] = (int)Math.floor(Math.random()*60) + 1;
        	maxxPO ++;
        	pobau ++;
        	anzKriminalitaet -= 5;

/*        	lbMoney.setVisible(false);
        	lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos);
        	lbMoney.setVisible(true);*/        	
        }

    	}
    	);
    }
    panelCommand.add(btnBauPolizeistation);
    
    btnBauKrankenhaus = new Button("Neues Krankenhaus bauen");
    {
    	btnBauKrankenhaus.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent arg0) {}

        @Override
        public void mouseReleased(MouseEvent arg0) 
        {
        	money -= 100000;
        	anzArbeitslos -= 100;
        	posxK[maxxK] = (int)Math.floor(Math.random()*60) + 1;
        	maxxK ++;
        	kbau ++;
        	anzKriminalitaet -= 5;
        	

/*        	lbMoney.setVisible(false);
        	lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos);
        	lbMoney.setVisible(true);*/        	
        }

    	}
    	);
    }
    panelCommand.add(btnBauKrankenhaus);

    btnBauSchule = new Button("Neue Schule bauen");
    {
    	btnBauSchule.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent arg0) {}

        @Override
        public void mouseReleased(MouseEvent arg0) 
        {
        	money -= 100000;
        	anzArbeitslos -= 100;
        	anzKriminalitaet -= 5;

        	posxS[maxxS] = (int)Math.floor(Math.random()*60) + 1;
        	maxxS ++;
        	sbau ++;
        	
/*        	lbMoney.setVisible(false);
        	lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + anzArbeitslos);
        	lbMoney.setVisible(true);*/        	
        }

    	}
    	);
    }
    panelCommand.add(btnBauSchule);
    
    return panelCommand;
	}
	
	public void init()
	{	
    maxxF = 0;
    maxxH = 0;
    maxxK = 0;
    maxxPB = 0;
    maxxPO = 0;
    maxxS = 0;
    
    posxF = new int[10000];
    posxH = new int[10000];
    posxK = new int[10000];
    posxPB = new int[10000];
    posxPO  = new int[10000];
    posxS = new int[10000];
    
    JOptionPane.showMessageDialog(null, "Copyright(c) 2010 AP\n\nMusik Software:\nMagix Music Maker 2008 Producer Edition\n\nGrafik:\nCorel Paint Shop XI\nGoogle Sketchup\n\nSFX:\nData Becker Hintergrundmusik und Sounds für Videos");
    jahr = 2000;
    monat = 1;
    tag = 1;
    
    
    
    /*items = new int[10];
    for(int j=0; j<items.length; j++)
    {
    	items[j] = 0;
    }*/
    urlLK = this.getClass().getResource("/images/landkarte2.gif");
    urlPB = this.getClass().getResource("/images/platenbau2.gif");
    urlH = this.getClass().getResource("/images/haus3.gif");
    urlF = this.getClass().getResource("/images/fabrik3.gif");
    urlP = this.getClass().getResource("/images/polizei22.gif");
    urlS = this.getClass().getResource("/images/schule2.gif");
    urlK = this.getClass().getResource("/images/KH.gif");

    urlMus = this.getClass().getResource("/images/hm.wav");
    
    try {
    
    AudioClip ac = getAudioClip(getCodeBase(), urlMus.toExternalForm());
    ac.loop();
    } 
    catch(Exception ex){}
    money = 10000000;
    einwohner = 1;

    status = 0;
    pbau = 0;
    hbau = 0;
    pobau = 0;
    kbau = 0;
    sbau=0;
    
    zeit = 0;
    anzArbeitslos = 0;
    anzStarb = 0;

    Thread th = new Thread(this);
    th.start();
    
    setLayout(new BorderLayout());
    lbMoney = new Label();
    {
    	lbMoney.setText(""); //Kapital:" + money + "€, Einwohner:" + einwohner);
    	add(lbMoney, "North");
    	add(command(), "South");
    }
    
//    addMouseListener(this);
    setSize(890,660);
	}
	
	public void paint(Graphics g)
	{
    Toolkit tk = this.getToolkit();
    
    g.drawImage(tk.getImage(urlLK), 30, 30, this);
    for(int j=0; j<pbau; j++)
    {
    	g.drawImage(tk.getImage(urlPB), 30+posxPB[j], 60, this);    	
    }

    for(int j=0; j<hbau; j++)
    {
    	g.drawImage(tk.getImage(urlH), 160+posxH[j], 340, this);    	
    }

    for(int j=0; j<fbau; j++)
    {
    	g.drawImage(tk.getImage(urlF), 260+posxF[j], 60, this);    	
    }
    
    for(int j=0; j<pobau; j++)
    {
    	g.drawImage(tk.getImage(urlP), 160+posxPO[j], 20, this);            
    }
    
    for(int j=0; j<sbau; j++)
    {
    	g.drawImage(tk.getImage(urlS), 260+posxPO[j], 10, this);                	
    }

    for(int j=0; j<kbau; j++)
    {
    	g.drawImage(tk.getImage(urlK), 0+posxK[j], 250, this);                	
    }
    
	}

	@Override
	public void run() 
	{
    while(true) 
    {
    	try {
        zeit++;
        //if(anzArbeitslos < 0) anzArbeitslos = 0;
        tag++;
        if(tag >= 30)
        {
           if(anzArbeitslos > 0)
           money -= (anzArbeitslos * 100);
        
           money += (fbau * 30);
           money += (pobau * 10);
           money += (hbau * 10);
           money += (pbau * 20);
           money += (sbau * 10);
           money += (kbau * 20);

           tag = 1;
           monat ++;
        }
        
        if(tag == 20)
        {
        	if(anzArbeitslos > 600)
            anzKriminalitaet ++;
        	if(anzKriminalitaet > 10)
        	{
            JOptionPane.showMessageDialog(this, "Die Kriminalität ist hoch. Bitte bauen Sie Polizeistation oder bauen Sie eine Fabrik. Je weniger Arbeitslos desto weniger Verbrechen.");
        	}
        }
        if(monat == (int)Math.floor(1+Math.random()*12))
        {
        	if(anzKriminalitaet > 1 || anzArbeitslos > 5)
        	{
            anzStarb += 2;
            einwohner -= 2;
        	}
        	if(kbau == 0)
        	{
            anzStarb += 2;
            einwohner -= 2;
        	}
        	einwohner += 5;
        }
        if(monat >= 12)
        {
        	tag = 1;
        	monat = 1;
        	jahr++;
        }
        
        if(zeit >= 1000)
        {
        	zeit = 0;
        	if(einwohner > 1)
        	einwohner -= 1;
        }
        lbMoney.setVisible(false);
        long tempAL = anzArbeitslos;
        long tempAK = anzKriminalitaet;
        if(anzArbeitslos < 0)
        	tempAL = 0;
        if(anzKriminalitaet < 0)
        	tempAK = 0;
        lbMoney.setText("Kapital:" + money + "€, Einwohner:" + einwohner + ",anz. Arbeitslos:" + tempAL + ", anz. Verbrechen:" + tempAK + ",Anzahl Menschen starb:" + anzStarb + ", Datum:" + tag + " " + getMonat(monat) + " " + jahr);
        lbMoney.setVisible(true);
        this.repaint();
        Thread.sleep(1000);
    	}
    	catch(Exception ex){}
    }
	}

}