[[oktatas:programozás:java|< Java]]
====== Java applet ======
* **Szerző:** Sallai András
* Copyright (c) 2011, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Bevezetés =====
Az applet egy az Internetes böngészőben futó kisalkalmazás. A böngészőnek alkalmasnak kell lenni a
Java futtatására.
Az alábbi oldalon tesztelheti, hogy alkalmas-e a böngészője a Java futtatására:
* http://java.com/en/download/testjava.jsp
===== Helló Világ szerű program =====
==== Java applet ====
A következőkben a Java applet megvalósítás három módját fogjuk látni. Kiindulásnak bármelyik jó.
A hellóvilág nevű program egyetlen címkével:
import javax.swing.*;
import java.applet.Applet;
public class ap extends Applet
{
JLabel cimke;
public ap()
{
setLayout(null);
cimke = new JLabel("Helló Világ");
cimke.setBounds(100,100, 300,30);
add(cimke);
}
}
Az Swing csomag összes osztályát használhatjuk.
Vagy:
A HellóVilág nevű program rajzolt szöveggel:
import java.awt.Graphics;
import java.applet.Applet;
public class ap extends Applet
{
public void paint(Graphics g)
{
g.drawString("Szöveg", 50, 120);
}
}
Az awt tartalmazza a Grapics osztályt a rajzoláshoz. Az applet tartalmazza az Applet osztályt, amely alapvető funkciókat
tartalmaz az applet készítéshez.
Vagy:
import javax.swing.*;
public class ap extends JApplet
{
JLabel cimke;
public ap()
{
setLayout(null);
cimke = new JLabel("Első applet");
cimke.setBounds(100,100,300,30);
add(cimke);
}
}
Az utóbbi esetben az applet csomag Applet osztálya helyett a swing csomag JApplet-jét használtuk.
Fordítás:
javac ap.java
==== HTML-be ágyazás ====
Java applet test
Java applet test
==== HTML-be ágyazás HTML 4.01 verzióval ====
A HTML 4.01 verzióval használható az applet elem is.
==== Megtekintése ====
appletviewer index.html
A böngészővel is megtekinthető, de változtatás után nem frissül még a Ctrl + F5 hatására sem.
Csak a böngésző újraindítása után láthatók a frissítések, ezért használjuk a appletviewer programot.
==== Paraméterek object elemnél ====
===== Színezés =====
Szöveg színezése:
g.setColor(Color.green);
g.drawString("Szöveg", 50, 120);
Saját szín:
Color myRed = new Color(175, 0, 0);
g.setColor(myRed.darker());
===== Fontok használata =====
Font myFont = new Font("Helvetica", Font.BOLD, 32);
g.setFont(myFont);
===== Alakzatok =====
Téglalap:
g.fillRect(10, 10, 280, 130);
Az alakzat előtt hasznáhatjuk:
g.setColor(Color.black);
Kör:
g.fillRect(0,0,100,100);
Ovális:
g.fillOval(xpos,5,90,90);
===== Kép =====
import java.awt.*;
import java.applet.Applet;
public class ap extends Applet
{
Image kep;
public void init()
{
kep = getImage(getDocumentBase(), "kep.png");
}
public void paint(Graphics g)
{
g.drawImage(kep, 100, 100, this);
}
}
===== Esemény =====
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class ap extends Applet implements ActionListener {
Button gomb1;
String s;
public void init() {
setLayout(null); // Ez után használhatjuk a setBounds metódust.
gomb1 = new Button("Valami");
gomb1.setBounds(20,20,100,30);
gomb1.addActionListener(this);
add(gomb1);
}
public void actionPerformed (ActionEvent e){
if(e.getSource() == gomb1) s = "alma";
repaint();
}
public void paint (Graphics g) {
g.drawString("Eredmény: " + s, 50, 80);
}
}
===== Írás fájlba =====
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.awt.event.*;
public class Program extends Applet implements ActionListener
{
Button mentesGomb;
TextField nevMezo;
public void init()
{
setLayout(new FlowLayout());
mentesGomb = new Button("Ment");
nevMezo = new TextField(35);
add(mentesGomb);
add(nevMezo);
mentesGomb.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource() == mentesGomb)
{
String s = nevMezo.getText();
System.out.println("Eredmény: " + s);
try
{
File f = new File("adat.txt");
FileWriter kifolyam = new FileWriter(f, true);
PrintWriter kimenet = new PrintWriter(kifolyam);
kimenet.println(s);
kimenet.close();
}
catch(IOException e)
{
System.out.println("Hiba a fájlba írás közben!");
}
}
} /* actionPermormed */
}
Sablon
Írás fájlba
grant {
permission java.io.FilePermission "<>","write";
};
Megtekintés:
appletviewer -J-Djava.security.policy=Program.policy index.html
A policy fájl persze lehet egyszerűen egy polifile nevű állomány is
kiterjesztés nélkül.
==== Ide vonatkozó linkek ====
* http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html
* http://www.exampledepot.com/egs/java.security/File.html
* http://stackoverflow.com/questions/6099661/java-policy-file-and-local-applet
===== Függelék =====
==== Java telepítése Debian GNU/Linux alatt ====
wget http://valahol/valamilyen_javacsomag.tar.gz
==== Java plugin telepítése Chrome és Firefox alatt ====
Keressük meg hova telepítettük a Java-t.
mkdir /opt/google/chrome/plugins
ln -s /usr/local/jdk1.7.0_05/jre/lib/i386/libnpjp2.so /opt/google/chrome/plugins/
chrome://plugins