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);
}
}
}
-------------------
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--;
}
}
}
-------------------
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);
}
}
--------------------
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
}
}
}
-----------------------
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
}
}
}
------------------------
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
}
}
}
-----------------------
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
}
}
}
---------------------
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
}
}
}
-------------------------
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
}
}
}
----------------------
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);
}
}
--------------------
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));
}
}
}
----------------------
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);
}
}
-------------------
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);
}
}
----------------------
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));
}
}
}
--------------------
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);
}
}
}
----------------------
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;
}
}
}
---------------------
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;
}
}
}
---------------------
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));
}
}
}
-----------------------
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));
}
}
}
----------------------------
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));
}
}
}
-----------------------
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);
}
}
----------------------
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);
}
}
}
-----------------------
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));
}
}
}
------------------------
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
}
}
}
-----------------------------
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);
}
}
------------------------
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);
}
}
}
-----------------------
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]);
}
}
}
}
-----------------------
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("----");
}
}
}
-------------------------
/* 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);
}
}
------------------------------------------
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.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);
}
}
---------------------------
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);
}
}
------------------------
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);
}
}
--------------------
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!");
}
}
}
}
--------------------------------
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);
}
}
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);
}
}
--------------------
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
}
}
}
-----------------------------
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) {}
}
------------------------------
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) {}
}
/* 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) {}
}
---------------------------------------
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);
}
}
Nincsenek megjegyzések:
Megjegyzés küldése