package elte.java2_utikalauz5.programok;
/**
Alkalmazások programozásának szemléltetése.

A felületen látható lista felsorolja a kapott programparamétereket.
Az ablak alján látható két gomb szolgál a befejezésre.
A program befejezését figyelve kilistázódnak a rendszerjellemzők
és a környezeti változók aktuális értékeit.
@see java.lang.Runtime
@link.forrásfájl {@docRoot}/../data/programok/src AlkalmazasTeszt.java
@link.letöltés {@docRoot}/../data/programok AlkalmazasTeszt.jar
@since Java 2 Útikalauz programozóknak 5.0
*/
class AlkalmazasTeszt extends java.awt.Frame //Frame-től öröklés
implements Runnable, java.awt.event.ActionListener { //eseményfigyelés
/** Verziószám. */
private final static long serialVersionUID = 15L;
/**
GUI-t felépítő konstruktor.
@param argumentumok A program indítási paraméterei.
*/
public AlkalmazasTeszt(String argumentumok[]) {
setTitle(getClass().getName()+" alkalmazás"); //Ablak fejléce
java.awt.TextArea paraméterlista = new java.awt.TextArea(); //szövegmező
add(paraméterlista); //középpontban a paraméterlista
paraméterlista.setEditable(false); //nem módosítható
paraméterlista.append("Paraméterszám: "+argumentumok.length+"\n");
for (int számláló = 0; számláló < argumentumok.length; számláló++)
paraméterlista.append( számláló+1+ //paraméterek listázása
". paraméter: "+argumentumok[számláló]+"\n");
java.awt.Panel panel = new java.awt.Panel(); //gombok panelje
add(panel, java.awt.BorderLayout.SOUTH); //a panel lent látható
java.awt.Button gomb = new java.awt.Button("exit"); //nyomógombok
panel.add(gomb); //felvétele
gomb.addActionListener(this); //gombnyomás figyelése
gomb = new java.awt.Button("halt");
panel.add(gomb);
gomb.addActionListener(this);
// setSize(300, 200); //vagy megadjuk a kezdeti méretet
pack(); //vagy az alapértelmezett méret lesz felvéve
setVisible(true); //felület megjelenítése
}
/**
Gombnyomás lekezelése.
@param esemény A gombnyomást reprezentáló eseményobjektum.
*/
public void actionPerformed(java.awt.event.ActionEvent esemény) {
if ("exit".equals(esemény.getActionCommand())) //kilépés exit-tel
System.exit(0);
if ("halt".equals(esemény.getActionCommand())) //kilépés halt-tal
Runtime.getRuntime().halt(0);
}
/**
A tesztprogram indítása.
@param argumentumok Az indításkor megadott paraméterek.
*/
public static void main(String argumentumok[]) {
Runtime.getRuntime().addShutdownHook(new Thread(//VM befejezés figyelése
new AlkalmazasTeszt(argumentumok))); //példányosítás
}
/**
A virtuális gép leállásakor hajtódik végre. Kilistázzuk a rendszerjellemzők
és a környezeti változók aktuális értékeit.
*/
public void run() {
System.out.println("Rendszerjellemzők:");
java.util.Properties jellemzők = System.getProperties();
String[] nevek = java.util.Collections.list(jellemzők.propertyNames()).
toArray(new String[0]); //rendszerjellemzők neveinek
java.util.Arrays.sort(nevek); //rendezése
for (String név : nevek) //és az értékek kilistázása
System.out.println("\t"+név+"="+jellemzők.getProperty(név));
System.out.println("Környezeti változók:");
java.util.Map környezet = System.getenv(); //környezeti
nevek = környezet.keySet().toArray(new String[0]); //változók neveinek
java.util.Arrays.sort(nevek); //rendezése
for (String név : nevek) //és az értékek kilistázása
System.out.println("\t"+név+"="+környezet.get(név));
}
}