Uygulamaların kullanıcı (client) tarafında çalışacağı durumlarda çoğu kişi applet ile çözüm bulur. Bu gibi durumlarda verilerin appletten javascript e aktarılması gibi bir istek doğması çok normaldir. Böyle bir durumu örneklemeye çalışacağım.
Appletten javascript e erişmek istediğimizde, JSObject kütüphanesini kullanmaktayız. Bu kütüphaneye netscape.javacript.JSObject yolunda ulaşmak mümkündür. Fakat bu kütüphaneye classpath ten direk erişmek mümkün değildir, windows kullanıcıları için,
C:\Program Files\Java\jre\lib\plugin.jar
linux kullanıcıları için Open-jdk yüklediklerinde,
/usr/shared/icedtea-web/plugin.jar
manuel olarak jdk kurduklarında ise,
/opt/jdk/jre/lib/plugin.jar
yolundan erişilebilir. Bu kütüphaneyi projemize dahil ettikten sonra appletimizi oluşturmaya başlayabiliriz.
Applet için ben aşağıdaki gibi örnek bir kod yazdım, bu kodda applete bir buton ekledim, butona tıklandığında jsObject objesiyle javascripte bir string değer gönderdim.
PHP- Kodu:
[/LEFT][/CODE]
Applet sınıfını oluşturduktan sonra sıra HTML sayfasını oluşturmaya geliyor, bunun için ilk önce appleti html sayfasına gösteriyoruz ve htmlden appleti kullanacak gerekli javascript kodunu yazıyoruz. Ben bu örnekte çok basit olarak şöyle bir şey yazdım;
PHP- Kodu:
[/LEFT][/CODE]
Bunların ardından oluşturduğumuz internet sayfasını çalıştırdığımızda, applette oluşturduğumuz buton gelecektir. Bu butona tıkladığımızda ise html sayfasında oluşturduğumuz textarea ya applet kodunda yazdığımız string verisi yazacaktır.
Appletten javascript e erişmek istediğimizde, JSObject kütüphanesini kullanmaktayız. Bu kütüphaneye netscape.javacript.JSObject yolunda ulaşmak mümkündür. Fakat bu kütüphaneye classpath ten direk erişmek mümkün değildir, windows kullanıcıları için,
C:\Program Files\Java\jre\lib\plugin.jar
linux kullanıcıları için Open-jdk yüklediklerinde,
/usr/shared/icedtea-web/plugin.jar
manuel olarak jdk kurduklarında ise,
/opt/jdk/jre/lib/plugin.jar
yolundan erişilebilir. Bu kütüphaneyi projemize dahil ettikten sonra appletimizi oluşturmaya başlayabiliriz.
Applet için ben aşağıdaki gibi örnek bir kod yazdım, bu kodda applete bir buton ekledim, butona tıklandığında jsObject objesiyle javascripte bir string değer gönderdim.
PHP- Kodu:
Kod:
[LEFT][CODE][COLOR=#000000] [COLOR=#0000BB]import java[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]awt[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]FlowLayout[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import java[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]awt[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ActionEvent[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import java[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]awt[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ActionListener[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import javax[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]swing[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]JApplet[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import javax[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]swing[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]JButton[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import javax[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]swing[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]JTextArea[/COLOR][COLOR=#007700]; [/COLOR]
[COLOR=#0000BB]import netscape[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]javascript[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]JSObject[/COLOR][COLOR=#007700];
public class [/COLOR][COLOR=#0000BB]AppletToJavascript [/COLOR][COLOR=#007700]extends [/COLOR][COLOR=#0000BB]JApplet [/COLOR][COLOR=#007700]implements [/COLOR][COLOR=#0000BB]ActionListener[/COLOR][COLOR=#007700]{
private static final [/COLOR][COLOR=#0000BB]long serialVersionUID [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1L[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000BB]JSObject jsObject[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000BB]JButton btnJavascript [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]null[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000BB]JTextArea textArea [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]null[/COLOR][COLOR=#007700];
public [/COLOR][COLOR=#0000BB]void init[/COLOR][COLOR=#007700](){
[/COLOR][COLOR=#0000BB]this[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]setLayout[/COLOR][COLOR=#007700](new [/COLOR][COLOR=#0000BB]FlowLayout[/COLOR][COLOR=#007700]());
[/COLOR][COLOR=#0000BB]btnJavascript [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]JButton[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Javascript"[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]btnJavascript[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]addActionListener[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]this[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]this[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]add[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]btnJavascript[/COLOR][COLOR=#007700]);
}
public [/COLOR][COLOR=#0000BB]void actionPerformed[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ActionEvent action[/COLOR][COLOR=#007700]){
if([/COLOR][COLOR=#0000BB]action[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]getSource[/COLOR][COLOR=#007700]() == [/COLOR][COLOR=#0000BB]btnJavascript[/COLOR][COLOR=#007700]){
[/COLOR][COLOR=#0000BB]jsObject [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]JSObject[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]getWindow[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]this[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]jsObject[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]call[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"callApplet"[/COLOR][COLOR=#007700], new [/COLOR][COLOR=#0000BB]String[/COLOR][COLOR=#007700][]{[/COLOR][COLOR=#DD0000]"kodlapaylas.com"[/COLOR][COLOR=#007700]});
}
}
} [/COLOR][/COLOR]
Applet sınıfını oluşturduktan sonra sıra HTML sayfasını oluşturmaya geliyor, bunun için ilk önce appleti html sayfasına gösteriyoruz ve htmlden appleti kullanacak gerekli javascript kodunu yazıyoruz. Ben bu örnekte çok basit olarak şöyle bir şey yazdım;
PHP- Kodu:
Kod:
[LEFT][CODE][COLOR=#000000] [COLOR=#0000BB] [/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]html[/COLOR][COLOR=#007700]>
<[/COLOR][COLOR=#0000BB]script language[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]"javascript"[/COLOR][COLOR=#007700]>
function [/COLOR][COLOR=#0000BB]callApplet[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]text[/COLOR][COLOR=#007700]){
[/COLOR][COLOR=#0000BB]document[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]getElementById[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"deger"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]text[/COLOR][COLOR=#007700];
} [/COLOR]
[COLOR=#0000BB]</script>[/COLOR]
<head>
<title>Applet Javascript Test</title>
</head>
<body>
<div>
<applet width="150" height="50" code="com.wordpress.erenbasaran.AppletTest.AppletToJavascript"
archive="applet1.jar, plugin.jar">
<param name="mayscript" value="true" />
</applet>
<input type="textarea" id="deger" rows="20" cols="80"/>
</div>
</body>
</html> [/COLOR]
Bunların ardından oluşturduğumuz internet sayfasını çalıştırdığımızda, applette oluşturduğumuz buton gelecektir. Bu butona tıkladığımızda ise html sayfasında oluşturduğumuz textarea ya applet kodunda yazdığımız string verisi yazacaktır.