Az ezen a lapon található java források itt érhetők el.
Itt pedig a byte-kódú, azaz a lefordított változat.
Írassuk ki a v vektor elemeit!
// VektorKiir.java
import java.util.*;
class VektorKiir {
static Vector v=new Vector(10);
public static void main(String argv[]) {
for(int i=0;i<5;i++)
v.insertElementAt(new Integer(i),i);
v.insertElementAt("Szia Világ!",5);
v.removeElementAt(2);
for(Enumeration e = v.elements();e.hasMoreElements();) {
System.out.println(e.nextElement());
}
}
}
|
A fenti program eredménye:
0 1 3 4 Szia Világ! |
Készítsünk egy Nebantsvirag osztályt, ez lesz a megfigyelt
objektum. Ennek lesz egy változik metódusa, amivel az objektumot
megváltoztatjuk, és ez gondoskodik a megfigyelők értesítéséről is. Majd
írunk megfigyelőket, egy Szamlalo nevűt, ami megszámolja, hogy
hányszor változtattuk meg az objektumot; valamint egy Spion nevűt,
ami a megfigyelt objektum változásakor a konzolra kiír egy üzenetet, amely
tartalmazza a Nebantsvirag által a NotifyObservers()
metódusnak átadott objektumot is.
// VizsgalApp.java
import java.util.*;
class Szamlalo implements Observer {
int változások;
public void update(Observable o, Object obj) {
változások++;
}
public int változásokSzáma() {
return változások;
}
}
class Spion implements Observer {
public void update(Observable o, Object obj) {
System.out.println("Ne bántsátok szegényt! Te meg, '"
+ obj +"', menj vissza!");
}
}
class Nebantsvirag extends Observable {
public void változik(Object o) {
setChanged();
notifyObservers(o);
}
}
class VizsgalApp {
public static void main(String argv[]) {
Nebantsvirag n=new Nebantsvirag();
Szamlalo s=new Szamlalo();
Spion fióka=new Spion();
n.addObserver(s);
n.addObserver(fióka);
n.változik(new Integer(100));
n.változik("piszka, motoszka");
System.out.println("A Nebántsvirágot " + s.változásokSzáma()+
"-szor változtatták.");
}
}
|
A fenti program eredménye:
Ne bántsátok szegényt!Te meg, '100' menj vissza! Ne bántsátok szegényt!Te meg, 'piszka, motoszka' menj vissza! A Nebántsvirágot 2-szor változtatták. |
Készítsünk két bitsorozatot, amelyek emberek tulajdonságait írják le:
a kék_a_szemük bitsorozat i-edik eleme true,
ha az i-edik emberünk kékszemű. Hasonlóan, a barnahajúak
bitsorozat az embereink barnahajúságát fejezi ki. Írassuk ki a kékszeműeket,
a barnahajúakat és azokat, akiknek kék a szeme és barna a haja!
// SzemesHajasok.java
import java.util.*;
class SzemesHajasok {
static BitSet barnahajúak = new BitSet(),
kék_a_szemük = new BitSet(9);
static void initSets() {
for(int i=1;i<5;i++)
barnahajúak.set(i);
for(int i=3; i<10;i++)
kék_a_szemük.set(i);
}
public static void main(String argv[]) {
initSets();
System.out.println("Barnahajúak:"+barnahajúak);
System.out.println("Kék a szemük:"+kék_a_szemük);
barnahajúak.and(kék_a_szemük); //az eredmény a barnahajúak bitsorozatban lesz
System.out.println("Barnahajúak és kék a szemük:" + barnahajúak);
}
}
|
A fenti program eredménye:
Barnahajúak:{1,2,3,4}
Kék a szemük:{3,4,5,6,7,8,9}
Barnahajúak és kék a szemük:{3,4}
|
Ebben a példaprogramban megpróbálunk minél többet megtudni az aktuális
időről:
// datum.java
import java.util.*;
class datum {
public static void main(String[] args) {
// Melyik időzónák is jók nekünk, magyaroknak? (1 óra Greenwich-től)
String[] jók=TimeZone.getAvailableIDs(1*60*60*1000);
System.out.println("Greenwich-től keletre 1 órányira levő időzónák:");
for(int i=0;i < jók.length;i++)
System.out.println(" " + jók[i]);
// Vesszük azt, amit hivatalosan használunk:
SimpleTimeZone ect = new SimpleTimeZone(1,"ECT");
// Beállítjuk a nyári időszámítás kezdetét április első vasárnapjára,
// hajnal 2 órára
ect.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2*60*60*1000);
// ... és a végét október utolsó vasárnapjára, szintén 2 órára.
ect.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2*60*60*1000);
// Ezzel az időzónával kezdünk egy időszámítást:
Calendar calendar = new GregorianCalendar(ect);
// Az aktuális időpillanatot lekérdezzük
Date Most = new Date();
calendar.setTime(Most);
System.out.println("Az aktuális idő:");
System.out.print(calendar.get(Calendar.ERA)==0 ? "i.e. " : "i.sz ");
System.out.print(calendar.get(Calendar.YEAR) + ".");
System.out.print((calendar.get(Calendar.MONTH)+1) + ".");
System.out.print(calendar.get(Calendar.DATE) + " ");
System.out.print(calendar.get(Calendar.AM_PM)==1?"du ":"de ");
System.out.print((calendar.get(Calendar.HOUR)+1) + ":");
System.out.print(calendar.get(Calendar.MINUTE) + ":");
System.out.print(calendar.get(Calendar.SECOND) + " mp. ");
System.out.println(calendar.get(Calendar.MILLISECOND) + " ezredmp.");
System.out.print("Most az év " + calendar.get(Calendar.WEEK_OF_YEAR) +
". hetében járunk, ");
System.out.println("Ez egyébként a(z) "+
calendar.get(Calendar.WEEK_OF_MONTH) + ". ebben a hónapban.");
}
}
|
Az alábbi program kilistázza a futtató gépen elérhető Locale-okat,
majd a listából kiválasztott ország adott nyelvén megjeleníti az aktuális
dátumot és időt a lista felett. A listában elöl az ország neve áll, kerek
zárójelben az ország rövidítése, míg szögletes zárójelben az ország ISO
rövidítése áll, ezt követi a nyelv hasonló leírása.
// LocaleTest.java
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import java.text.*;
public class LocaleTest extends Applet implements ItemListener {
private Locale locales[];
boolean isStandalone = false;
java.awt.List list = new java.awt.List();
TextField textField = new TextField();
public void init() {
list.addItemListener(this);
this.setLayout(new BorderLayout());
this.add(list, BorderLayout.CENTER);
this.add(textField, BorderLayout.NORTH);
locales=DateFormat.getAvailableLocales();
for (int i=0; i < locales.length; i++) {
list.add(
locales[i].getDisplayCountry()+"("+
locales[i].getCountry()+
")["+locales[i].getISO3Country()+"] "+
locales[i].getDisplayLanguage()+"("+
locales[i].getLanguage()+
")["+locales[i].getISO3Language()+"]"
);
}
}
public void itemStateChanged(ItemEvent e) {
textField.setText(
DateFormat.getDateTimeInstance(
DateFormat.SHORT, DateFormat.SHORT,
locales[list.getSelectedIndex()]
).format(new Date())
);
}
}
|
A fenti program képe:
Ez az alapértelmezett erőforrásosztály:
// MyResource.java
import java.util.*;
public class MyResource extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
// Ezt kell kitölteni
{"HelpLabel","Help"},
{"FileMenuLabel","File"}
};
}
|
Ez pedig a leszármazott, amely magyar nyelvű:
// MyResource_hu_HU.java
import java.util.*;
public class MyResource_hu_HU extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
// Ezt kell kitölteni
{"HelpLabel","Súgó"},
{"FileMenuLabel","Fájl"}
};
}
|
És itt következik a felhasználó (teszt)program:
// myres.java
import java.util.*;
public class myres {
public static void main(String[] args) {
Locale Magyar = new Locale("hu","HU");
ResourceBundle myResources =
ResourceBundle.getBundle("MyResource", Magyar);
System.out.println(myResources.getObject("HelpLabel"));
System.out.println(myResources.getObject("FileMenuLabel"));
myResources =
ResourceBundle.getBundle("MyResource",Locale.getDefault());
System.out.println(myResources.getObject("HelpLabel"));
System.out.println(myResources.getObject("FileMenuLabel"));
}
}
|
A fenti program képe:
Súgó Fájl Help File |
A MyResource.properties nevű fájl tartalma:
# MyResource.properties HelpLabel = Help FileMenuLabel = File # MyResource.properties EOF |
A MyResource_hu_HU.properties nevű fájl tartalma:
# MyResource_hu_HU.properties HelpLabel = Súgó FileMenuLabel = Fájl # MyResource_hu_HU.properties EOF |
A felhasználó (teszt)program és az eredmény megegyezik az előző példában szereplővel.
Egy nagyon egyszerű alkalmazás:
// tokenizer.java
import java.util.*;
public class tokenizer {
public static void main(String[] args) {
String s =" public static void main";
StringTokenizer st = new StringTokenizer(s);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());}
}
}
|
A fenti program eredménye:
public static void main |
A következő példában az időzítő visszafelé számol::
// Count.java
import java.util.Timer;
import java.util.TimerTask;
public class Count {
public static void main(final String args[]) {
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
int i = 5;
public void run() {
System.out.println(i--);
if (i< 0) timer.cancel();
}
}, 0, 1000);
}
}
|
A fenti program eredménye:
5 4 3 2 1 0 |