2020. szeptember 8., kedd

Grafikus programok java programozási nyelven

Síkidomok kirajzolása és feliratok kiíratása
 
import java.awt.*;
import java.applet.*;

public class RajzApplet extends Applet {
 public void paint(Graphics g) {

  /* egy téglalapot a Graphics osztály void fillRect(int,int,int,int)
     metódusával rajzolhatunk ki; az első két paraméter a téglalap bal
     felső sarkának x és y koordinátáját, a második két paraméter pedig
     a téglalap szélességét és magasságát adja meg */

  g.setColor(Color.blue); //a téglalap kitöltő színe kék lesz
  g.fillRect(10,20,180,60);

  /* egy ellipszist a Graphics osztály void fillOval(int,int,int,int)
     metódusával rajzolhatunk ki; a paraméterek azt a téglalapot adják
     meg, amelybe az ellipszist rajzoljuk */

  g.setColor(Color.red); //az ellipszis kitöltő színe piros lesz
  g.fillOval(20,10,100,50);

  /* egy sokszöget a Graphics osztály void fillPolygon(int[],int[],int)
     metódusával rajzolhatunk ki; az első két paramétertömb a sokszög
     csúcsainak x, ill. y koordinátáit adja meg, az utolsó paraméter pedig
     a csúcsok számát */

  int[] xP={150,240,195},yP={50,50,120};
  g.setColor(Color.green);
  g.fillPolygon(xP,yP,3);

  /* egy vonalat a Graphics osztály void drawLine(int,int,int,int)
     metódusával rajzolhatunk ki; az első két paraméter a vonal kezdő-,
     a második két paraméter pedig a vonal végpontjának x és y
     koordinátáját adja meg */

  g.setColor(Color.black);
  g.drawLine(10,20,195,120);

  g.setColor(Color.black);
  g.drawString("Hello!",5,12);
  g.setColor(Color.yellow);
  g.drawString("Hello!!",55,42);
  g.setColor(Color.white);
  g.drawString("Hello!!!",105,72);
  g.setColor(Color.magenta);
  g.drawString("Hello!!!",155,102);
  }
 }
 
-------------------
 
import java.applet.*;
import java.awt.*;

public class HatterApplet extends Applet {

 public void paint(Graphics g) {
  Color bibor=new Color(200,0,200); //bíborvörös sötétebb árnyalatban
  Color zoldes=new Color(55,255,55); //az előző bíborvörös ellentéte
  Font fb=new Font("Courier",Font.BOLD,24);
  Font fi=new Font("Arial",Font.ITALIC,32);
  Font fp=new Font("Times New Roman",Font.PLAIN,14);

  /* az applet előtér- és háttérszínét a java.awt.Component osztály void
     setForeground(Color) és void setBackground(Color) metódusaival
     állíthatjuk be */

  setBackground(Color.blue);
  setForeground(Color.yellow);
  g.setFont(fb);
  g.drawString("Hello!",5,30); //kiírás az előtérszínnel (sárga)

  g.setColor(zoldes);
  g.fillRect(55,40,30,20);
  g.setColor(bibor);
  g.fillRect(5,60,100,200);
  g.drawString("Hello!",105,30); //kiírás a rajzolószínnel (bibor)

  /* a Graphics osztály void setXORMode(Color) metódusa az aktuális
     rajzolószínű pontokat a paraméterben megadott színnel írja felül,
     és megfordítva; a többi pont esetén pedig az előtér- és háttérszínt
     használja */

  g.setFont(fi);
  g.setXORMode(zoldes);
  g.drawString("Üdvözlet Katától!",5,70);

  g.setFont(fp);
  g.drawString("Viszlát!",90,90);
  }
 } 
----------------
EgerApplet.java, EgerApplet.html - egérkattintás figyelése, pötty kirajzolása (grafikus felületen) 
/* az applet ötlete a ClickMe.java programból származik, amely megtalálható
a http://java.sun.com webhelyen */
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/* az EgerApplet implementálja a java.awt.event.MouseListener interfészt;
ez azt jelenti, hogy az applet a következő metódusokat felüldefiniálja:
void mousePressed(MouseEvent) //egérgomb lenyomása
void mouseClicked(MouseEvent) //kattintás egérgombbal
void mouseReleased(MouseEvent) //egérgomb felengedése
void mouseEntered(MouseEvent) //egérkurzor belépése az appletablakba
void mouseExited(MouseEvent) //egérkurzor kilépése az appletablakból
*/
public class EgerApplet extends Applet implements MouseListener {
public static final int SUGAR=7; //pötty sugara
public int x=-1,y=-1; //pötty középpontjának koordinátái
/* az applet inicializálásakor meghívódik a Component osztály
void addMouseListener(MouseListener) metódusa, amelynek paraméterként
átadjuk az EgerApplet aktuális példányát (ti. annak címét: this);
a metódus az egéresemények figyelését kapcsolja be, az applettel
párhuzamosan (egy új "szálként") fog futni, és egy egéresemény
bekövetkezésekor meghívja az appletben átdefiniált megfelelő mouseXxx
metódust */
public void init() {
addMouseListener(this);
}
public void paint(Graphics g) {
/* fehér téglalap és fekete keret kirajzolása az appletben */
g.setColor(Color.white);
g.fillRect(0,0,getSize().width-1,getSize().height-1);
g.setColor(Color.black);
g.drawRect(0,0,getSize().width-1,getSize().height-1);
g.setColor(Color.red); //a pötty piros színű lesz
if (x>=0 && y>=0) {
g.fillOval(x-SUGAR,y-SUGAR,SUGAR*2,SUGAR*2); //pötty kirajzolása
}
}
/* Az applet az applet újrarajzolására a java.awt.Component osztály
repaint(Graphics) metódusát hívja meg, amely a java.awt.Component
osztály update(Graphics) metódusát hívja; ez utóbbi először szürke
alapszínnel átfesti az appletet, majd meghívja a paint metódust.
Ez villogást okoz, ezért érdemes az update metódust úgy átdefiniálni,
hogy csak a paint metódust hívja, és ne fesse át előtte az appletet. */
public void update(Graphics g) {
paint(g);
}
/* az egér lenyomásakor az egérkurzor aktuális koordinátáit állítjuk be
a pötty középpontjaként, és újrarajzoljuk az appletet a repaint
metódus meghívásával */
public void mousePressed(MouseEvent event) {
x=event.getX();
y=event.getY();
repaint();
}
public void mouseClicked(MouseEvent event) {}
public void mouseReleased(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}
}

Fakt.java - 10 faktoriálisának kiszámítása (long)
public class Fakt {
public static void main(String[] args) {
int i,n=10;
long f; //bővebb értéktartomány
f=1;
for(i=2;i<=n;i++){
f*=i;
}
System.out.println(n+" faktorialisanak erteke: "+f);
}
}

Fakt1.java - az elsõ 10 számra a szám faktoriálisának kiíratása (metódus formális paraméterekkel)
public class Fakt1 {
public long fakt(int n){ //metódus formális paraméterrel
int i; //metódus lokális változói
long f;
f=1;
for(i=2;i<=n;i++){
f*=i;
}
return f; //visszatér n faktoriálisának értékével
}
public static void main(String[] args) {
int i,n=10;
Fakt1 f=new Fakt1();
System.out.println("Az elso "+n+" szam faktorialisanak erteke:");
i=1;
for(i=1;i<=n;i++){
System.out.println(i+"! = "+f.fakt(i));
}
}
}

Fakt2.java - az elsõ 10 számra a szám faktoriálisának kiíratása (statikus metódus formális paraméterekkel)
public class Fakt2 {
public static long fakt(int n){ //statikus metódus formális paraméterrel
int i; //metódus lokális változói
long f;
f=1;
for(i=2;i<=n;i++){
f*=i;
}
return f; //visszatér n faktoriálisának értékével
}
public static void main(String[] args) {
int i,n=10;
System.out.println("Az elso "+n+" szam faktorialisanak erteke:");
i=1;
for(i=1;i<=n;i++){
System.out.println(i+"! = "+fakt(i));
}
}
}

Fakt3.java - az elsõ 10 páratlan szám szorzatának kiszámítása
public class Fakt3 {
public static void main(String[] args) {
int i,j,n=10;
long f; //bővebb értéktartomány
f=1;
j=1;
for(i=1;i<=n;i++){
f*=j;
j+=2;
}
System.out.println("Az elso "+n+" paratlan szam szorzatanak erteke: "+f);
}
}


Fakt4.java - az elsõ 5 páratlan szám összegének és szorzatának kiszámítása
public class Fakt4 {
public static void main(String[] args) {
int i,j,sum,n=5;
long f; //bővebb értéktartomány
sum=0;
f=1;
j=1;
for(i=1;i<=n;i++){
sum+=j;
f*=j;
j+=2;
}
System.out.println("Az elso "+n+" paratlan szam osszegenek erteke: "+sum);
System.out.println("Az elso "+n+" paratlan szam szorzatanak erteke: "+f);
}
}

FontApplet.java, FontApplet.html - szöveg kiírása különbözõ karakterformátumokban
import java.awt.*;
import java.applet.*;
public class FontApplet extends Applet {
public void paint(Graphics g) {
/* egy font megadására használhatjuk a java.awt.Font osztály
Font(String,int,int) konstruktorát; az első paraméter a fonttípus
nevét, a második a font stílusát, a harmadik a font méretét adja
meg; a font stílusát a Font osztály Font.BOLD, Font.ITALIC, és
Font.PLAIN konstansaival adhatjuk meg (ezeket össze is adhatjuk,
ha félkövér dőlt stílust akarunk használni) */
Font font1=new Font("Courier",Font.BOLD,24);
Font font2=new Font("Arial",Font.ITALIC,24);
Font font3=new Font("Times New Roman",Font.BOLD+Font.ITALIC,24);
/* az aktuális fontot a Graphics osztály void setFont(Font) metódusával
tudjuk beállítani */
g.setColor(Color.yellow);
g.setFont(font1);
g.drawString("Courier BOLD",5,40);
g.setColor(Color.blue);
g.setFont(font2);
g.drawString("Arial ITALIC",5,80);
g.setColor(Color.magenta);
g.setFont(font3);
g.drawString("Times BOLD+ITALIC",5,120);
}
}

Fuggvenyek.java - a szinusz- és koszinuszfüggvény értékeinek kiíratása négy tizedesjegy pontossággal (Math.sin(), Math.cos())
public class Fuggvenyek {
public double fok(double x){
/* a radianban megadott szogertek atvaltasa fokra */
return x/Math.PI*180; //180 fok = PI radián
}
public static void main(String[] args) {
double x=0; //intervallum kezdete
double x1=Math.PI/2; //intervallum vége
double dx=x1/9; //kiiratás 10 fokonként (PI/2 radián=90 fok)
Fuggvenyek f=new Fuggvenyek();
System.out.println("A szinusz- es koszinuszfuggveny ertekei:");
do{
System.out.println(f.fok(x)+" fok: sin(x) = "+
Kerekit.kerekit(Math.sin(x),4)+" cos(x) = "+
Kerekit.kerekit(Math.cos(x),4));
x+=dx; //következő szögérték
} while(x<=x1);
}
}

HatterApplet.java, HatterApplet.html - szövegek kiíratása síkidomok között
import java.applet.*;
import java.awt.*;
public class HatterApplet extends Applet {
public void paint(Graphics g) {
Color bibor=new Color(200,0,200); //bíborvörös sötétebb árnyalatban
Color zoldes=new Color(55,255,55); //az előző bíborvörös ellentéte
Font fb=new Font("Courier",Font.BOLD,24);
Font fi=new Font("Arial",Font.ITALIC,32);
Font fp=new Font("Times New Roman",Font.PLAIN,14);
/* az applet előtér- és háttérszínét a java.awt.Component osztály void
setForeground(Color) és void setBackground(Color) metódusaival
állíthatjuk be */
setBackground(Color.blue);
setForeground(Color.yellow);
g.setFont(fb);
g.drawString("Hello!",5,30); //kiírás az előtérszínnel (sárga)
g.setColor(zoldes);
g.fillRect(55,40,30,20);
g.setColor(bibor);
g.fillRect(5,60,100,200);
g.drawString("Hello!",105,30); //kiírás a rajzolószínnel (bibor)
/* a Graphics osztály void setXORMode(Color) metódusa az aktuális
rajzolószínű pontokat a paraméterben megadott színnel írja felül,
és megfordítva; a többi pont esetén pedig az előtér- és háttérszínt
használja */
g.setFont(fi);
g.setXORMode(zoldes);
g.drawString("Üdvözlet Katától!",5,70);
g.setFont(fp);
g.drawString("Viszlát!",90,90);
}
}

Hatvany.java - 2 elsõ 10 pozitív hatványának kiíratása (double, *=)
public class Hatvany {
public static void main(String[] args) {
int i,n=10;
double h=2.0,x;
x=1.0; //h^0 (h nulladik hatványa)
System.out.println(h+" elso 10 hatvanya:");
for(i=0;i<n;i++){
System.out.println(h+"^"+i+" = "+x);
x*=h;
}
}
}

Hatvany1.java - 2 elsõ 10 negatív hatványának kiíratása (/=)
public class Hatvany1 {
public static void main(String[] args) {
int i,n=10;
double h=2.0,x;
x=1.0;
System.out.println(h+" elso 10 negativ hatvanya:");
for(i=0;i>=-n;i--){
System.out.println(h+"^"+i+" = "+x);
x/=h;
}
}
}


Hatvany2.java - PI (3.14...) elsõ 10 hatványának kiíratása (Math.PI, Math.pow())
public class Hatvany2 {
public static void main(String[] args) {
int i,n=10;
double x=Math.PI;
System.out.println("PI elso 10 hatvanya:");
for(i=1;i<=n;i++){
System.out.println("PI^"+i+" = "+Math.pow(x,i));
}
}
}

Hatvany2a.java - a PI1.0, PI1.5, PI2.0, PI2.5, ..., PI10.0 hatványok kiíratása
public class Hatvany2a {
public static void main(String[] args) {
double i,n=10.0,di=0.5;
double x=Math.PI;
System.out.println("PI hatványai:");
for(i=1.0;i<=n;i+=di){
System.out.println("PI^"+i+" = "+Math.pow(x,i));
}
}
}

Hello.java - "Hello!" kiíratása (System.out.println())
public class Hello {
public static void main(String[] args) {
System.out.println("**********");
System.out.println("* Hello! *");
System.out.println("**********");
}
}

Hello1.java - üdvözlés kiíratása (lokális változók, értékadás)
public class Hello1 {
public static void main(String[] args) {
int kor; //elemi típusú lokális változó
String nev; //osztálytípusú lokális változó
kor=23;
nev="Kata"; //a String osztály "látszólag" elemi típusként viselkedik
System.out.println("Hello "+kor+" eves "+nev+"!");
}
}

Hello1a.java - üdvözlés kiíratása (lokális változók a main metódusban, kezdõértékadás)
public class Hello1a {
public static void main(String[] args) {
int kor=23;
String nev=new String("Kata"); //kezdőértékadás konstruktorral
System.out.println("Hello "+kor+" eves "+nev+"!");
}
}

Hello2.java - üdvözlés kiíratása (mezõk, példányosítás, alapértelmezett konstruktor)
public class Hello2 {
public int kor; //elemi típusú mező
public String nev; //osztálytípusú mező
public static void main(String[] args) {
Hello2 h=new Hello2(); //példányosítás alapértelmezett konstruktorral
h.kor=23; //így tudunk hozzáférni a példány elemváltozóihoz
h.nev="Kata";
System.out.println("Hello "+h.kor+" eves "+h.nev+"!");
}
}

Hello3.java - üdvözlés kiíratása (metódus visszatérési érték nélkül)
public class Hello3 {
public int kor;
public String nev;
public void beallit() { //metódus visszatérési érték nélkül
kor=23; //a mezők közvetlenül elérhetőek
nev="Kata";
}
public static void main(String[] args) {
Hello3 h=new Hello3();
h.beallit(); //így tudunk hozzáférni a példány metódusaihoz
System.out.println("Hello "+h.kor+" eves "+h.nev+"!");
}
}

Hello4.java - üdvözlés kiíratása (metódus visszatérési értékkel; lokális változó egy metódusban; zártság)
public class Hello4 {
public int kor;
public String nev;
public void beallit() {
kor=23;
nev="Kata";
}
public String udvozlet() { //metódus visszatérési értékkel
String s; //lokális változó metódusban
s="Hello "+kor+" eves "+nev+"!";
return s;
}
public static void main(String[] args) {
Hello4 h=new Hello4();
/* zártság: nem férünk hozzá közvetlenül az elemváltozókhoz, csak
a beallit() és udvozlet() metódusokon keresztül */
h.beallit();
System.out.println(h.udvozlet());
}
}

Hello5.java - üdvözlés kiíratása (egymást hívó metódusok)
public class Hello5 {
public int kor;
public String nev;
public void beallit() {
kor=23;
nev="Kata";
}
public String udvozlet() {
return "Hello "+kor+" eves "+nev+"!"; //lehet közvetlenül is
}
public void hello() {
beallit(); //a metódusok közvetlenül elérhetőek
System.out.println(udvozlet());
}
public static void main(String[] args) {
Hello5 h=new Hello5();
h.hello(); //a hello() metódus hívja meg a beallit() metódust
}
}


Hello5a.java - üdvözlés kiíratása (kezdõérték beállítás konstruktorral)
public class Hello5a {
public int kor;
public String nev;
public Hello5a() { //konstruktor definiálása
beallit(); //a konstruktor beállítja a mezők kezdőértékét
}
public void beallit() {
kor=23;
nev="Kata";
}
public String udvozlet() {
return "Hello "+kor+" eves "+nev+"!";
}
public void hello() {
System.out.println(udvozlet());
}
public static void main(String[] args) {
Hello5a h=new Hello5a();
h.hello(); //a hello() metódus hívja meg a beallit() metódust
}
}

Hello6.java - üdvözlés kiíratása más adatokkal (öröklõdés, polimorfizmus)
public class Hello6 extends Hello5 { //Hello6 a Hello5 leszármazottja
/* öröklődés: Hello6 örökli a Hello5 osztály publikus adatmezőit és
metódusait */
/* polimorfizmus: a beallit() metódust átdefiniáljuk úgy, hogy a
szignatúrája változatlan marad, de a törzse különböző lesz */
public void beallit() {
kor=42;
nev="Szilvi";
}
public static void main(String[] args) {
Hello5 h5=new Hello5();
Hello6 h6=new Hello6();
h5.hello(); //hello() a Hello5 osztály beallit() metódusát hívja meg
/* dinamikus öröklődés:
Hello5
| void beallit()
| String udvozlet()
| void hello() [meghívja a beallit() és udvozlet() metódusokat]
|
Hello6
void beallit()
bár a hello() metódust a Hello5 osztályban definiáltuk, ha a Hello6
osztályból hívjuk meg, az átdefiniált beallit() metódust fogja
meghívni */
h6.hello(); //hello() a Hello6 osztály beallit() metódusát hívja meg
}
}

Hello7.java - üdvözlés kiíratása (öröklõdés, új mezõ hozzáadása, super osztály; \n)
public class Hello7 extends Hello5 { //Hello7 a Hello5 leszármazottja
public String nev2;
public void beallit() {
super.beallit(); //meghívjuk a szülő ösztály beallit() metódusát
nev2="Csaba";
}
public String udvozlet() {
String s;
s=super.udvozlet()+"\nUdvozol: "+nev2; //soremelés \n karakterrel
return s;
}
public static void main(String[] args) {
Hello7 h=new Hello7();
h.hello();
}
}

Hello8.java - üdvözlés kiíratása aláhúzással (statikus változó és metódus; System.out.print())
public class Hello8 extends Hello5 { //Hello8 a Hello5 leszármazottja
public static int hossz=40; //statikus vagy osztályváltozó
public static void alahuz() { //statikus vagy osztálymetódus
int i;
for(i=1;i<=hossz;i++) { //hossz darab * kiírása
System.out.print("*"); //*-ok kiírása egymás mellé
}
System.out.println(); //soremelés
}
public static void main(String[] args) {
Hello8 h=new Hello8();
h.hello();
alahuz(); //a statikus metódusok példányosítás nélkül hívhatóak
System.out.println();
}
}

Hello9.java - üdvözlés kiíratása aláhúzással (értékadás statikus változónak; statikus metódus meghívása)
public class Hello9 extends Hello5 { //Hello9 a Hello5 leszármazottja
public static void main(String[] args) {
String s;
Hello9 h=new Hello9();
/* a kiírandó karakterláncot az s lokális változóba tesszük, hogy
lekérdezhessük a hosszát; ezt a 'hossz' statikus változóba téve
az aláhúzást jelentő *-ok száma pontosan meg fog egyezni a kiírt
szöveg hosszával */
h.hello(); //a mezők értékének beállítása és az üdvözlet kiírása
s=h.udvozlet(); //a kiírt karakterlánc lekérdezése
Hello8.hossz=s.length(); //értékadás egy statikus változónak
Hello8.alahuz(); //statikus metódus meghívása
}
}

Hello9a.java - üdvözlés kiíratása aláhúzással (kezdõérték beállítás példányosításkor)
public class Hello9a extends Hello5a { //Hello9a a Hello5a leszármazottja
public static void main(String[] args) {
String s;
Hello9a h=new Hello9a(); //a mezők kezdőértékének beállítása
s=h.udvozlet(); //a kiírt karakterlánc lekérdezése
Hello8.hossz=s.length(); //értékadás egy statikus változónak
Hello8.alahuz(); //statikus metódus meghívása
h.hello(); //üdvözlet kiírása
Hello8.alahuz(); //statikus metódus meghívása
}
}


Hello9b.java - üdvözlés kiíratása más adatokkal és szöveggel, aláhúzással a szöveg elõtt és után
public class Hello9b extends Hello5a { //Hello9a a Hello5a leszármazottja
public void beallit() { //metódus átdefiniálása
nev="Zsuzsa";
kor=25;
}
public String udvozlet() { //ezt is átdefiniáljuk
return "Szia "+nev+"("+kor+")!";
}
public static void main(String[] args) {
String s;
Hello9b h=new Hello9b(); //a mezők kezdőértékének beállítása
s=h.udvozlet(); //a kiírt karakterlánc lekérdezése
Hello8.hossz=s.length(); //értékadás egy statikus változónak
Hello8.alahuz(); //statikus metódus meghívása
h.hello(); //üdvözlet kiírása
Hello8.alahuz(); //statikus metódus meghívása
}
}

HelloApplet.java, HelloApplet.html - "Hello!" kiíratása egy appletben
/* a HelloApplet osztályt a java.applet.Applet osztályból
származtatjuk, így örökli annak minden mezőjét és metódusát */
public class HelloApplet extends java.applet.Applet {
/* a böngésző az applet kirajzolásakor a java.awt.Component osztály
paint(Graphics) metódusát hívja meg; mivel a java.applet.Applet
osztály a Component osztály leszármazottja, ha a HelloApplet
osztályban átdefiniáljuk a paint metódust, a böngésző ezt fogja
meghívni az applet kirajzolásakor */
public void paint(java.awt.Graphics g) {
/* a java.awt.Graphics osztály a fontos rajzoló metódusokkal rendelkezik;
ezek közül egyik a drawString(String,int,int) metódus, amely az
első paraméterként megadott szöveget rajzolja ki az aktuális színnel,
és az aktuális fontot használva; a szöveg alapvonala a megadott (x,y)
koordinátákon kezdődik */
g.drawString("Hello!",5,12);
}
}

Jegyek.java - egy jegy megadása parancssori paraméterként és szöveges formájának kiírása (Integer.parseInt(), switch...case...break...default)
public class Jegyek {
public static void main(String[] args) {
int j;
String s;
if(args.length==0){
System.out.println("Nincs parameter!");
}
else{
j=Integer.parseInt(args[0]); //a megadott string egész számmá alakítása
switch(j) {
case 1: s="egyes"; break;
case 2: s="kettes"; break;
case 3: s="harmas"; break;
case 4: s="negyes"; break;
case 5: s="otos"; System.out.println("Bravo!"); break;
default: s="???"; System.out.println("Nocsak!");
}
System.out.println("A megadott jegy: "+j+" ("+s+")");
}
}
}

Jegyek1.java - egy jegy megadása parancssori paraméterként és szöveges formájának kiírása hibakezeléssel (try...catch)
public class Jegyek1 {
public static String atvalt(int j) {
String s;
switch(j) {
case 1: s="egyes"; break;
case 2: s="kettes"; break;
case 3: s="harmas"; break;
case 4: s="negyes"; break;
case 5: s="otos"; break;
default: s="???";
}
return s;
}
public static void main(String[] args) {
int j;
if(args.length==0){
System.out.println("Nincs parameter!");
}
else{
try {
j=Integer.parseInt(args[0]); //a megadott string egész számmá alakítása
System.out.println("A megadott jegy: "+j+" ("+atvalt(j)+")");
}
catch(NumberFormatException e) {
System.out.println("Nem szamot adtal meg!");
}
}
}
}

Kerekit.java - egy valós szám kerekítése n tizedesjegyre (if, Math.round())
public class Kerekit {
public static double kerekit(double x,int n){
double z;
if(n==0){
return Math.round(x); //kerekítés egesz számmá
};
z=Math.pow(10,n);
return Math.round(x*z)/z;
}
public static void main(String[] args) {
double x;
int i;
x=1928.37465;
System.out.println(x+" kerekitett ertekei:");
for(i=-4;i<6;i++) {
if(i>=0) System.out.print(i==0?" ":"+");
System.out.println(i+" tizedesjegyre: "+kerekit(x,i));
}
}
}


Lotto.java - lottószámok rendezett kiíratása (szöveges felületen)
public class Lotto {
public static final int MAXNUM=5; //maximum ennyi számmal dolgozunk
private boolean[] sz=new boolean[92]; //milyen számokat generáltunk?
private int num; //hány számot generáltunk már?
public Lotto() { //konstruktor
num=0; //az osztály példányosításakor inicializáljuk n-t
torol(); //az osztály példányosításakor inicializáljuk a tömböt
}
public void torol() {
int i;
for(i=1;i<=90;i++) {
sz[i]=false;
}
sz[0]=true; //strázsa
sz[91]=true; //strázsa
}
public int general() {
int i;
if(num>MAXNUM) { //öt érték után újrakezdjük a számok generálását
num=0;
torol();
}
do {
i=(int)(90*Math.random())+1; //véletlen lottószám generálása
} while(sz[i]); //addig folytatjuk, amíg nem kapunk új számot
sz[i]=true; //"betesszük" a számot a tömbbe
num++; //eddig n darab számot generáltunk
return i;
}
public int kihuz() {
int i=1;
while(!sz[i]) { //addig folytatjuk, amíg sz[i] igaz nem lesz
i++;
}
if(0<i && i<91) { //nem értük el a strázsát
sz[i]=false; //"kivesszük" a számot a tömbből
num--; //eggyel kevesebb szám van a tömbben
}
return i;
}
public static void main(String[] args) {
int i;
Lotto lotto=new Lotto();
System.out.println("A javasolt lottoszamok:");
for(i=1;i<=MAXNUM;i++){
lotto.general(); //öt különböző számot generálunk
}
for(i=1;i<=MAXNUM;i++){
System.out.println(i+". szam: "+lotto.kihuz()); //kiíratás rendezetten
}
}
}

LottoFrame.java - lottószámok rendezett kiíratása (grafikus felületen)
import java.awt.*;
import java.awt.event.*;
public class LottoFrame extends Frame implements WindowListener {
public LottoFrame(String s) { //konstruktor paraméterrel
super(s); //a Frame osztály konstruktora beállítja az ablak címsorát
}
public static void main(String[] args) {
LottoFrame frame=new LottoFrame("Lottószámok");
frame.setSize(150,70); //beállítja az ablak méretét
frame.addWindowListener(frame); //bekapcsolja az ablakesemények figyelését
frame.show(); //kirajzolja az ablakot
}
public void paint(Graphics g) {
int i;
Lotto lotto=new Lotto();
g.drawString("A javasolt lottószámok:",5,42);
for(i=0;i<Lotto.MAXNUM;i++){
lotto.general();
}
for(i=0;i<Lotto.MAXNUM;i++){
g.drawString(""+lotto.kihuz(),24*i+5,54);
}
}
public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}


LottoFrame1.java - lottószámok rendezett kiíratása menüvezérelten
import java.awt.*;
import java.awt.event.*;
public class LottoFrame1 extends Frame implements WindowListener,
ActionListener {
public LottoFrame1(String s) { //konstruktor paraméterrel
super(s); //a Frame osztály konstruktora beállítja az ablak címsorát
}
public static void main(String[] args) {
LottoFrame1 frame=new LottoFrame1("Lottószámok");
MenuItem actionNew=new MenuItem("New");
MenuItem actionQuit=new MenuItem("Quit");
Menu menusor=new Menu("Action");
menusor.setFont(new Font("Arial",Font.BOLD,12));
menusor.add(actionNew);
actionNew.addActionListener(frame); //menüpont figyelése
menusor.add(actionQuit);
actionQuit.addActionListener(frame); //menüpont figyelése
MenuBar fomenu=new MenuBar();
fomenu.add(menusor);
frame.setSize(150,100); //beállítja az ablak méretét
frame.addWindowListener(frame); //ablakesemények figyelése
frame.setMenuBar(fomenu); //főmenü beállítása
frame.show(); //kirajzolja az ablakot
}
public void paint(Graphics g) {
int i;
Lotto lotto=new Lotto();
g.drawString("A javasolt lottószámok:",10,60);
for(i=0;i<Lotto.MAXNUM;i++){
lotto.general();
}
for(i=0;i<Lotto.MAXNUM;i++){
g.drawString(""+lotto.kihuz(),24*i+10,72);
}
}
public void actionPerformed(ActionEvent ev) {
if(ev.getActionCommand()=="New") {
repaint();
}
else if (ev.getActionCommand()=="Quit") {
System.exit(0);
}
}
public void windowOpened(WindowEvent ew) {}
public void windowClosing(WindowEvent ew) {
System.exit(0);
}
public void windowClosed(WindowEvent ew) {}
public void windowIconified(WindowEvent ew) {}
public void windowDeiconified(WindowEvent ew) {}
public void windowActivated(WindowEvent ew) {}
public void windowDeactivated(WindowEvent ew) {}
}

Negyzet.java - az elsõ 10 négyzetszám kiíratása
public class Negyzet {
public static void main(String[] args) {
int i,n=10;
System.out.println("Az elso 10 negyzetszam:");
for(i=1;i<=n;i++){
System.out.println(i+"*"+i+" = "+i*i);
}
}
}

Osszead.java - két parancssori paramétert összead
public class Osszead extends Szamol {
public Osszead() {
super("+");
}
public double muvelet(double x,double y) {
return x+y;
}
public static void main(String[] args) {
Osszead p=new Osszead();
p.szamol(args);
}
}

Osszeg.java - az elsõ 10 szám összegének kiszámítása
public class Osszeg {
public static void main(String[] args) {
int i,sum,n=31;
System.out.print("Az elso "+n+" egesz szam osszegenek erteke: ");
sum=0;
for(i=42;i<=73;i++){
sum+=i;
}
System.out.println(sum);
}
}

Osszeg1.java - az elsõ 10 számra a számok összegének kiíratása
public class Osszeg1 {
public int osszeg(int n){
int i,sum=0;
for(i=1;i<=n;i++){
sum+=i;
}
return sum; //visszatér az első n szám összegével
}
public static void main(String[] args) {
int i,n=10;
Osszeg1 o=new Osszeg1();
System.out.println("Szamok osszegenek kiiratasa:");
for(i=1;i<=n;i++){
System.out.println("elso "+i+" szam osszege: "+o.osszeg(i));
}
}
}

Osszeg2.java - az elsõ 10 páratlan szám összegének kiszámítása
public class Osszeg2 {
public static void main(String[] args) {
int i,j,sum,n=10;
System.out.print("Az elso "+n+" paratlan szam osszegenek erteke: ");
sum=0;
j=36;
for(i=1;i<=n;i++){
sum+=j;
j+=3;
}
System.out.println(sum);
}
}


Param.java - parancssori paraméterek kiírása (args, args.length)
public class Param {
public static void main(String[] args) {
int i;
if(args.length==0){
System.out.println("Nincs parameter!");
}
else{
System.out.println("A parameterek:");
for(i=0;i<args.length;i++) {
System.out.println("A(z) "+(i+1)+". parameter: "+args[i]);
}
}
}
}

Param1.java - a megadott parancssori paraméter kiírása szóközökkel ritkítva (String, length(), charAt())
public class Param1 {
public static void main(String[] args) {
int i;
String s;
if(args.length==0){
System.out.println("Nincs parameter!");
}
else{
s=args[0];
System.out.println("A megadott parameter:");
System.out.print("---- ");
for(i=0;i<s.length();i++) {
System.out.print(s.charAt(i)+" ");
}
System.out.println("----");
}
}
}

Param2.java - a megadott parancssori paraméter kiírása függõlegesen, karakterenként külön sorba
public class Param2 {
public static void main(String[] args) {
int i;
String s;
if(args.length==0){
System.out.println("Nincs parameter!");
}
else{
s=args[0];
System.out.println("A megadott parameter:");
for(i=0;i<s.length();i++) {
System.out.println(s.charAt(i));
}
}
}
}

Param3.java - a megadott parancssori paraméterek kiírása ábécé sorrendben (compareTo())
public class Param3 {
public static void main(String[] args) {
String s1,s2;
if(args.length<2){
System.out.println("Keves parameter!");
}
else{
s1=args[0];
s2=args[1];
System.out.println("A megadott parameterek abece sorrendben:");
if(s1.compareTo(s2)<0) {
System.out.println(s1+", "+s2);
}
else {
System.out.println(s2+", "+s1);
}
}
}
}

Param3a.java - parancssori paraméterekként megadott egész számok kiírása növekvõ sorrendben
public class Param3a {
public static void main(String[] args) {
int i1,i2;
if(args.length<2){
System.out.println("Keves parameter!");
}
else{
i1=Integer.parseInt(args[0]);
i2=Integer.parseInt(args[1]);
System.out.println("A megadott szamok novekvo sorrendben:");
if(i1<i2) {
System.out.println(i1+", "+i2);
}
else {
System.out.println(i2+", "+i1);
}
}
}
}

Param3b.java - parancssori paraméterekként megadott valós számok kiírása növekvõ sorrendben (Double.parseDouble())
public class Param3b {
public static void main(String[] args) {
double x1,x2;
if(args.length<2){
System.out.println("Keves parameter!");
}
else{
x1=Double.parseDouble(args[0]);
x2=Double.parseDouble(args[1]);
System.out.println("A megadott szamok novekvo sorrendben:");
if(x1<x2) {
System.out.println(x1+", "+x2);
}
else {
System.out.println(x2+", "+x1);
}
}
}
}


RajzApplet.java, RajzApplet.html - síkidomok kirajzolása és feliratok kiíratása
import java.awt.*;
import java.applet.*;
public class RajzApplet extends Applet {
public void paint(Graphics g) {
/* egy téglalapot a Graphics osztály void fillRect(int,int,int,int)
metódusával rajzolhatunk ki; az első két paraméter a téglalap bal
felső sarkának x és y koordinátáját, a második két paraméter pedig
a téglalap szélességét és magasságát adja meg */
g.setColor(Color.blue); //a téglalap kitöltő színe kék lesz
g.fillRect(10,20,180,60);
/* egy ellipszist a Graphics osztály void fillOval(int,int,int,int)
metódusával rajzolhatunk ki; a paraméterek azt a téglalapot adják
meg, amelybe az ellipszist rajzoljuk */
g.setColor(Color.red); //az ellipszis kitöltő színe piros lesz
g.fillOval(20,10,100,50);
/* egy sokszöget a Graphics osztály void fillPolygon(int[],int[],int)
metódusával rajzolhatunk ki; az első két paramétertömb a sokszög
csúcsainak x, ill. y koordinátáit adja meg, az utolsó paraméter pedig
a csúcsok számát */
int[] xP={150,240,195},yP={50,50,120};
g.setColor(Color.green);
g.fillPolygon(xP,yP,3);
/* egy vonalat a Graphics osztály void drawLine(int,int,int,int)
metódusával rajzolhatunk ki; az első két paraméter a vonal kezdő-,
a második két paraméter pedig a vonal végpontjának x és y
koordinátáját adja meg */
g.setColor(Color.black);
g.drawLine(10,20,195,120);
g.setColor(Color.black);
g.drawString("Hello!",5,12);
g.setColor(Color.yellow);
g.drawString("Hello!!",55,42);
g.setColor(Color.white);
g.drawString("Hello!!!",105,72);
g.setColor(Color.magenta);
g.drawString("Hello!!!",155,102);
}
}

Szamok.java - az elsõ 10 egész szám kiíratása (for, ++)
public class Szamok {
public static void main(String[] args) {
int i,n=10;
System.out.println("Az elso "+n+" egesz szam:");
for(i=1;i<=n;i++){
System.out.println(i);
}
}
}

Szamok1.java - az elsõ 5 egész szám kiíratása növekvõ és csökkenõ sorrendben (--)
public class Szamok1 {
public static void main(String[] args) {
int i,n=5;
System.out.println("Az elso "+n+" egesz szam:");
for(i=1;i<=n;i++){
System.out.println(i);
}
System.out.println("Az elso "+n+" egesz szam visszafele:");
for(i=n;i>=1;i--){
System.out.println(i);
}
}
}

Szamok1a.java - az elsõ 5 egész szám kiíratása növekvõ és csökkenõ sorrendben (while)
public class Szamok1a {
public static void main(String[] args) {
int i,n=20;
System.out.println("Az elso "+n+" egesz szam:");
i=15; //kezdőértékadás
while(i<=20) {
System.out.println(i);
i++; //ciklusváltozó növelése
}
i=30;
System.out.println("Az elso "+n+" egesz szam visszafele:");
while(i>=25) {
System.out.println(i);
i--;
}
}
}

Szamok1b.java - az elsõ 5 egész szám kiíratása növekvõ és csökkenõ sorrendben (do...while)
public class Szamok1b {
public static void main(String[] args) {
int i,n=5;
System.out.println("Az elso "+n+" egesz szam:");
i=1; //kezdőértékadás
do { //"do" blokk = a ciklusmag
System.out.println(i);
i++; //ciklusváltozó növelése
} while(i<=n); //ciklusfeltétel: amíg igaz, addig ismétli a ciklusmagot
i=n;
System.out.println("Az elso "+n+" egesz szam visszafele:");
do {
System.out.println(i);
i--;
} while(i>=1);
}
}

Szamok2.java - az elsõ 10 páratlan szám kiíratása (+=)
public class Szamok2 {
public static void main(String[] args) {
int i,j,n=10;
System.out.println("Az elso "+n+" paratlan szam:");
j=1; //első páratlan szám
for(i=1;i<=n;i++){
System.out.println(j);
j+=2; //következő páratlan szám
}
}
}

Szamok2a.java - az elsõ 10 páros szám kiíratása
public class Szamok2a {
public static void main(String[] args) {
int i,j,n=10;
System.out.println("Az elso "+n+" paros szam:");
j=2; //első páros szám
for(i=1;i<=n;i++){
System.out.println(j);
j+=2; //következő paros szám
}
}
}


Szamok2b.java - az elsõ 10 páros szám kiíratása visszafelé (-=)
public class Szamok2b {
public static void main(String[] args) {
int i,j,n=10;
System.out.println("Az elso "+n+" paros szam visszafele:");
j=2*10; //a 10. páros szám
for(i=1;i<=n;i++){
System.out.println(j);
j-=2; //következő paros szám
}
}
}

Szamok2c.java - az elsõ 10 páros szám kiíratása sorszámmal (+(összefûzés))
public class Szamok2c {
public static void main(String[] args) {
int i,j,n=10;
System.out.println("Az elso "+n+" paros szam:");
j=2; //első páros szám
for(i=1;i<=n;i++){
System.out.println("A(z) "+i+". paros szam: "+j);
j+=2; //következő paros szám
}
}
}

Szamok3.java - az 1,2,4,7,11,... sorozat elsõ 10 elemének kiíratása sorszámmal
public class Szamok3 {
public static void main(String[] args) {
int i,j,n=10;
System.out.println("Az 1,2,4,7,11,... sorozat elso "+n+" eleme:");
j=1; //sorozat első eleme
for(i=1;i<=n;i++){
System.out.println("A(z) "+i+". elem: "+j);
j+=i; //sorozat következő eleme
}
}
}

Szamok4.java - az 1,-2,3,-4,... sorozat elsõ 10 elemének kiíratása (boolean, !, ?:)
public class Szamok4 {
public static void main(String[] args) {
int i,n=10;
boolean pozitiv;
System.out.println("Az 1,-2,3,-4,... sorozat elso "+n+" eleme:");
pozitiv=true;
for(i=1;i<=n;i++){
System.out.println(pozitiv?i:-i); //+i vagy -i kiiratása váltakozva
pozitiv=!pozitiv; //true -> false, ill. false -> true váltás
}
}
}

Szamol.java - absztrakt osztály, amely az Osszead és Szoroz osztályok õsosztálya
public abstract class Szamol {
public String tipus; //a művelet szimbóluma (az eredmény kiíratásához)
/* a példányosításkor a konstruktor paramétereként adjuk meg a művelet
típusát */
public Szamol(String s) {
tipus=s;
}
public abstract double muvelet(double x,double y);
public void szamol(String[] a) {
double x,y;
if(a.length<2){
System.out.println("Keves parameter!");
}
else{
try {
x=Double.parseDouble(a[0]);
y=Double.parseDouble(a[1]);
System.out.println(x+" "+tipus+" "+y+" = "+muvelet(x,y));
}
catch(NumberFormatException e) {
System.out.println("A megadott ertekek nem szamok!");
}
}
}
}


SzamolApplet.java, SzamolApplet.html - számológép grafikus felületen (grafikus felületen)
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class SzamolApplet extends Applet implements ActionListener, TextListener {
public TextField x=new TextField(); //egysoros szövegdoboz létrehozása
public Label op=new Label("?"); //címkedoboz létrehozása
public TextField y=new TextField();
public Label eq=new Label("=");
public TextField z=new TextField();
public Button plus=new Button("x+y"); //gomb létrehozása
public Button minus=new Button("x-y");
public Button mul=new Button("x*y");
public Button div=new Button("x/y");
public Button pow=new Button("x^y");
private int bpos=5,bwidth=50;
private Font f=new Font("Courier",Font.BOLD,12);
public void init() {
setBackground(new Color(255, 175, 175)); //pink
setLayout(null); //automatikus elrendezés kikapcsolása
x.setBackground(new Color(160, 255, 255)); //~lightcyan
x.setBounds(5,5,50,20); //az x szövegdoboz határainak beállítása
add(x);
x.addTextListener(this);
op.setBounds(60,5,20,20);
op.setAlignment(Label.CENTER);
add(op);
y.setBackground(new Color(160, 255, 255)); //~lightcyan
y.setBounds(85,5,50,20); //az y szövegdoboz határainak beállítása
add(y);
y.addTextListener(this);
eq.setBounds(144,5,20,20);
eq.setAlignment(Label.CENTER);
add(eq);
z.setBackground(new Color(160, 255, 255)); //~lightcyan
z.setBounds(172,5,103,20);
add(z);
// műveleteket végrehajtó gombok
plus.setBackground(new Color(192, 192, 192)); //lightgray
plus.setFont(f);
plus.setBounds(5,35,bwidth,20);
bpos+=bwidth+5;
add(plus);
plus.setActionCommand("+");
plus.addActionListener(this); //gomb lenyomásának figyelése
minus.setBackground(new Color(192, 192, 192)); //lightgray
minus.setFont(f);
minus.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(minus);
minus.setActionCommand("-");
minus.addActionListener(this); //gomb lenyomásának figyelése
mul.setBackground(new Color(192, 192, 192)); //lightgray
mul.setFont(f);
mul.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(mul);
mul.setActionCommand("*");
mul.addActionListener(this); //gomb lenyomásának figyelése
div.setBackground(new Color(192, 192, 192)); //lightgray
div.setFont(f);
div.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(div);
div.setActionCommand("/");
div.addActionListener(this); //gomb lenyomásának figyelése
pow.setBackground(new Color(192, 192, 192)); //lightgray
pow.setFont(f);
pow.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(pow);
pow.setActionCommand("^");
pow.addActionListener(this); //gomb lenyomásának figyelése
}
public void actionPerformed(ActionEvent ev) {
double a,b;
try {
a=(new Double(x.getText())).doubleValue(); //konvertálás valós számmá
b=(new Double(y.getText())).doubleValue(); //konvertálás valós számmá
switch(ev.getActionCommand().charAt(0)) {
case '+':
op.setText("+");
z.setText(""+(a+b)); //szöveg beírása a z szövegdobozba
break;
case '-':
op.setText("-");
z.setText(""+(a-b)); //szöveg beírása a z szövegdobozba
break;
case '*':
op.setText("*");
z.setText(""+(a*b)); //szöveg beírása a z szövegdobozba
break;
case '/':
op.setText("/");
z.setText(""+(a/b)); //szöveg beírása a z szövegdobozba
break;
case '^':
op.setText("^");
z.setText(""+Math.pow(a,b)); //szöveg beírása a z szövegdobozba
break;
}
}
catch(Exception ex) {
z.setText("Hiba!");
}
validate(); //a változások érvényesítése
}
public void textValueChanged(TextEvent ev) {
op.setText("?");
z.setText(""); //megváltozott x vagy y értéke, ezért a korábbi eredmény törlődik
}
public void paint(Graphics g) {
g.setFont(new Font("Courier NEW CE",Font.BOLD,14));
g.drawString("Számológép 1.0",5,80);
}
}


SzinApplet.java, SzinApplet.html - "Hello!" kiíratása különbözõ színekben
/* az appletben a java.applet.Applet és java.awt.Graphics osztályokra
hiatkozunk; ha a java.awt és java.applet csomagokban levő osztályokat
elérhetővé tesszük az applet számára, a fordító meg fogja találni a
Applet és Graphics osztályok kódját anélkül is, hogy az applet
forráskódjában ezt konkrétan megadnánk */
import java.applet.*;
import java.awt.*;
public class SzinApplet extends Applet {
public void paint(Graphics g) {
/* a Graphics osztály void setColor(Color) metódusával állíthatjuk be
az aktuális rajzolószínt; a színek megadása legegyszerűbben a
java.awt.Color osztályban definiált "színkonstansokkal" lehetséges
(black, blue, cyan, darkGray, gray, green, lightGray, magenta,
orange, pink, red, white, yellow); ha egy színt több, mint 16 millió
szín közül akarunk kiválasztani, két lehetőségünk van:
(1) kikeverjük a színt az RGB alapszínekből a Color osztály
Color(int,int,int) konstruktorát használva (a paraméterek a [0..255]
intervallumból vehetnek fel értékeket);
(2) megadjuk a szín árnyalatát, telítettségét és fényerejét a Color
osztály statikus int Color.HSBtoRGB(float,float,float) metódusát
használva (ahol a paraméterek a [0.0,1.0] közötti értékeket vehetnek
fel), majd a metódus által visszaadott értékkel meghívjuk a Color
osztály Color(int) konstruktorát */
Color green=new Color(0,255,0);
Color blue=new Color(Color.HSBtoRGB(160f/255f,240f/255f,120f/255f));
g.setColor(Color.red);
g.drawString("Hello!",5,12);
g.setColor(green);
g.drawString("Hello!",5,24);
g.setColor(blue);
g.drawString("Hello!",5,36);
}
}

Szoroz.java - két parancssori paramétert összeszoroz
public class Szoroz extends Szamol {
public Szoroz() {
super("*");
}
public double muvelet(double x,double y) {
return x*y;
}
public static void main(String[] args) {
Szoroz p=new Szoroz();
p.szamol(args);
}
}

UrlapApplet.java, UrlapApplet.html - két szám összeadása egy ûrlapon
Összetett alkalmazások (haladóknak)
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/* a UrlapApplet applet implementálja a java.awt.event.ActionListener
interfészt; ez azt jelenti, hogy az applet a következő metódust
felüldefiniálja:
public void actionPerformed(ActionEvent) //vmilyen esemény történt
*/
public class UrlapApplet extends Applet implements ActionListener {
public TextField x=new TextField(); //egysoros szövegdoboz létrehozása
public Button plus=new Button("+"); //gomb létrehozása
public TextField y=new TextField();
public Label eq=new Label("="); //címkedoboz létrehozása
// public TextField z=new TextField();
public Label z=new Label();
public void init() {
setLayout(null); //automatikus elrendezés kikapcsolása
x.setBounds(5,5,50,20); //az x szövegdoboz határainak beállítása
add(x);
plus.setBounds(60,5,20,20);
add(plus);
/* az applet inicializálásakor meghívódik a java.awt.Button osztály
void addActionListener(ActionListener) metódusa, amelynek paraméterként
átadjuk az UrlapApplet aktuális példányát (ti. annak címét: this);
a metódus a gomb lenyomásának figyelését kapcsolja be, az applettel
párhuzamosan (egy új "szálként") fog futni, és a gomb lenyomásakor
meghívja az appletben átdefiniált actionPerformed metódust */
plus.addActionListener(this); //gomb lenyomásának figyelése
y.setBounds(85,5,50,20);
add(y);
eq.setBounds(140,5,20,20);
add(eq);
z.setBounds(165,5,100,20);
add(z);
}
public void actionPerformed(ActionEvent ev) {
double a,b;
try {
/* a Double.parseDouble() metódust a régebbi Java verziók sajnos
nem ismerik, így bonyolultabban kell konvertálni... */
a=(new Double(x.getText())).doubleValue(); //konvertálás valós számmá
b=(new Double(y.getText())).doubleValue();
z.setText(""+(a+b)); //szöveg beírása a z szövegdobozba
}
catch(Exception ex) {
z.setText("Hiba!");
}
validate(); //a változások érvényesítése
}
public void paint(Graphics g) {
setBackground(Color.pink);
}
}

Veletlen.java - 10 db véletlen valós szám kiíratása a [0,1) intervallumból (Math.random())
public class Veletlen {
public static void main(String[] args) {
int i,n=10;
double szam;
System.out.println(n+" darab veletlen szam a [0,1) intervallumbol:");
for(i=0;i<n;i++){
szam=Math.random(); //véletlen szám generálása
System.out.println(szam);
}
}
}

Veletlen0.java - 5 db véletlen valós szám kiíratása négy tizedesjegy pontossággal
public class Veletlen0 {
public static void main(String[] args) {
int i,n=5;
double szam;
System.out.println(n+" darab veletlen szam a [0,1) intervallumbol:");
for(i=0;i<n;i++){
szam=Math.random();
System.out.println(Kerekit.kerekit(szam,4));
}
}
}


Veletlen1.java - 10 db véletlen valós szám tárolása egy tömbben és kiíratása (tömb létrehozása)
public class Veletlen1 {
public static void main(String[] args) {
int i,n=10;
double[] szamok=new double[n]; //10 elemű valós tömb létrehozása
System.out.println(n+" darab veletlen szam a [0,1) intervallumbol:");
for(i=0;i<n;i++){
szamok[i]=Math.random(); //számok eltárolása a tömbben
}
for(i=0;i<n;i++){
System.out.println(szamok[i]); //számok kiíratása a tömbből
}
}
}

Veletlen2.java - 10 db véletlen valós szám tárolása egy tömbben; átlag, legkisebb és legnagyobb elem kiíratása
public class Veletlen2 {
public static void main(String[] args) {
int i,n=10;
double atl=0,min=1,max=0; //a kezdőértékek nagyon fontosak!!!
double szamok[]=new double[10];
System.out.println(n+" darab veletlen szam a [0,1) intervallumbol:");
for(i=0;i<n;i++){
szamok[i]=Math.random();
if(szamok[i]<min){
min=szamok[i]; //ha kisebb, mint az eddigi legkisebb, eltároljuk
}
if(szamok[i]>max){
max=szamok[i]; //ha nagyobb, mint az eddigi legnagyobb, eltároljuk
}
atl+=szamok[i]; //összegezzük a számokat
System.out.println(szamok[i]);
}
atl/=n; //az összeget osztjuk n-nel
System.out.println();
System.out.println("A legkisebb veletlen szam: "+min);
System.out.println("A legnagyobb veletlen szam: "+max);
System.out.println("A veletlen szamok atlaga: "+atl);
}
}

Veletlen3.java - 5 db véletlen egész szám kiíratása az [1,90] intervallumból ((int))
public class Veletlen3 {
public static void main(String[] args) {
int i,veletlen,n=5,min=1,max=90;
System.out.println(n+" darab veletlen egesz szam a(z) ["+
min+","+max+"] intervallumbol:");
for(i=1;i<=n;i++){
veletlen=(int)(max*Math.random())+min; //típuskényszerítés (int)-re
System.out.println(veletlen);
}
}
}
--------
Számológép

import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);
        System.out.print("Enter two numbers: ");

        // nextDouble() reads the next double from the keyboard
        double first = reader.nextDouble();
        double second = reader.nextDouble();

        System.out.print("Enter an operator (+, -, *, /): ");
        char operator = reader.next().charAt(0);

        double result;

        switch(operator)
        {
            case '+':
                result = first + second;
                break;

            case '-':
                result = first - second;
                break;

            case '*':
                result = first * second;
                break;

            case '/':
                result = first / second;
                break;

            // operator doesn't match any case constant (+, -, *, /)
            default:
                System.out.printf("Error! operator is not correct");
                return;
        }

        System.out.printf("%.1f %c %.1f = %.1f", first, operator, second, result);
    }
}
 

Nincsenek megjegyzések:

Megjegyzés küldése