การใส่เสียงใน Applet

หัวข้อพิเศษไอที, Java Applet No Comments »

        ไฟล์เสียงที่สามารถใช้งานได้ ต้องมีรูปแบบข้อมูลเป็น .au เท่านั้น ไฟล์เสียงจะมี class เป็น AudioClip และ  method ในการประมวลผลเสียงประกอบด้วย  
void loop() : ให้เล่นแฟ้มข้อมูลเสียงโดยไม่มีการหยุด
void play() : เริ่มเล่นแฟ้มข้อมูลเสียง และจะเล่นเพียงครั้งเดียว
void stop() : หยุดเล่น
ชุดคำสั่งในการอ่านและประมวลผลแฟ้มข้อมูลเสียงมีดังนี้
1. อ่านแฟ้มข้อมูลเสียง
AudioClip getAudioClip(URL)
AudioClip getAudioClip(URL, string)
เช่น AudioClip aClip = getAudioClip(getCodeBase(),.sound.au.);
2. การสั่งประมวลผลให้เล่นเสียง
void play(URL)
void play(URL, string)
เช่น aClip.play();
3. กรณีที่ต้องการให้แฟ้มข้อมูลเสียงเล่นต่อเนื่อง ควรมีการหยุดเล่นของเพลงใน method stop() ของ Applet  และสั่งให้เล่นใน method start()
ตัวอย่าง การแสดงรูปภาพและเสียงใน applet
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class DemoImageSound extends Applet implements ActionListener {
int w;
int h;
Canvas cv = new Canvas();
Panel p = new Panel();
Button sound, stop;
Image the_picture;
int imageNo = 0;
AudioClip soundClip;
boolean looping = false;
public void init() {
setLayout(new BorderLayout());
add(”North”, new Label(”This is Demo Canvas”, Label.CENTER));
sound = new Button(”Sound”);
sound.addActionListener(this);
p.add(sound);
stop = new Button(”Stop”);
stop.addActionListener(this);
p.add(stop);
add(”South”,p);
// กำหนดชื่อไฟล์รูปภาพและเสียงที่ต้องการแสดง
the_picture = getImage(getDocumentBase(),”nude_dek.jpg”);
soundClip = getAudioClip(getCodeBase(),”example.au”);
}
public void start() {
if (looping) {
soundClip.loop();
}
}
public void stop() {
if (looping)
soundClip.stop();
}
public void paint(Graphics g) {
int w = getSize().width;
int h = getSize().height;
g.drawImage(the_picture,w/4,h/4,this);
}

การรับค่าตัวแปรผ่านโปรแกรม Applet

หัวข้อพิเศษไอที, Java Applet No Comments »

ข้อมูลที่สามารถส่งให้ Applet ต้องเป็นแบบตัวอักษรเท่านั้น ชุดคำสั่ง HTML ต้องมีการเพิ่มคำสั่ง PARAM ภายในส่วนของ tag .. โดยมีรูปแบบการใช้งานดังนี้

 

 

 

 

 

โดยที่ param-name1 และ param-name2 เป็นตัวแปรที่กำหนดใน class YourApplet นอกจากนี้ คำสั่งของ  HTML ยังสามารถระบุตำแหน่งของแฟ้มข้อมูล Java class ได้กรณีที่แฟ้มข้อมูล Java class อยู่ต่าง directory กับแฟ้มข้อมูล HTML เช่น  
ในส่วนของ Applet เอง ต้องมีคำสั่งในการรับข้อมูลที่ส่งผ่าน HTML คือ
String getParameter(String name);
name ในที่นี้คือ param-name1 ในส่วนของ HTML นั่นเอง
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == sound) {
soundClip.loop();
looping = true;
}
else if (source == stop) {
if (looping) {
looping = false;
soundClip.stop();
}
}r
epaint();
}
} // end of class
ตัวอย่าง
import java.applet.*;
import java.awt.*;
public class SampleApplet2 extends Applet {
String message = “Hello World!!”;
Color textColor = Color.blue;
String pFntsize;
String sColor;
int fntsize = 24;
Font fnt;
public void init() {
sColor = getParameter(“color”);
pFntsize = getParameter(“font”);
if (pFntsize != null) {
fntsize = Integer.parseInt(pFntsize);
fnt = new Font(“Serif”, Font.BOLD, fntsize);
}
else
fnt = new Font(“Serif”, Font.BOLD,24);
if (sColor.equals(“red”))
textColor = Color.red;
}
public void paint(Graphics g) {
g.setFont(fnt);
g.setColor(textColor);
g.drawString(message, 130, 70);
Graphics2D g2 = (Graphics2D) g;
Rectangle box1 = new Rectangle(40, 10, 60, 30);
g2.draw(box1);
box1.translate(15, 25);
g2.draw(box1);
}
}

 

การใส่เสียงใน Applet

หัวข้อพิเศษไอที, Java Applet No Comments »


 ไฟล์เสียงที่สามารถใช้งานได้ ต้องมีรูปแบบข้อมูลเป็น .au เท่านั้น ไฟล์เสียงจะมี class เป็น AudioClip และ  method ในการประมวลผลเสียงประกอบด้วย  
void loop() : ให้เล่นแฟ้มข้อมูลเสียงโดยไม่มีการหยุด
void play() : เริ่มเล่นแฟ้มข้อมูลเสียง และจะเล่นเพียงครั้งเดียว
void stop() : หยุดเล่น
ชุดคำสั่งในการอ่านและประมวลผลแฟ้มข้อมูลเสียงมีดังนี้
1. อ่านแฟ้มข้อมูลเสียง
AudioClip getAudioClip(URL)
AudioClip getAudioClip(URL, string)
เช่น AudioClip aClip = getAudioClip(getCodeBase(),.sound.au.);
2. การสั่งประมวลผลให้เล่นเสียง
void play(URL)
void play(URL, string)
เช่น aClip.play();
3. กรณีที่ต้องการให้แฟ้มข้อมูลเสียงเล่นต่อเนื่อง ควรมีการหยุดเล่นของเพลงใน method stop() ของ Applet  และสั่งให้เล่นใน method start()
ตัวอย่าง การแสดงรูปภาพและเสียงใน applet
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class DemoImageSound extends Applet implements ActionListener {
int w;
int h;
Canvas cv = new Canvas();
Panel p = new Panel();
Button sound, stop;
Image the_picture;
int imageNo = 0;
AudioClip soundClip;
boolean looping = false;
public void init() {
setLayout(new BorderLayout());
add(”North”, new Label(”This is Demo Canvas”, Label.CENTER));
sound = new Button(”Sound”);
sound.addActionListener(this);
p.add(sound);
stop = new Button(”Stop”);
stop.addActionListener(this);
p.add(stop);
add(”South”,p);
// กำหนดชื่อไฟล์รูปภาพและเสียงที่ต้องการแสดง
the_picture = getImage(getDocumentBase(),”nude_dek.jpg”);
soundClip = getAudioClip(getCodeBase(),”example.au”);
}
public void start() {
if (looping) {
soundClip.loop();
}
}
public void stop() {
if (looping)
soundClip.stop();
}
public void paint(Graphics g) {
int w = getSize().width;
int h = getSize().height;
g.drawImage(the_picture,w/4,h/4,this);
}

การแสดงรูปและเสียงการอ่านและแสดงรูปภาพที่ Applet

หัวข้อพิเศษไอที, Java Applet No Comments »

1. คำสั่งในการอ่านแฟ้มข้อมูลรูปภาพ  ตัวอย่าง Image the_picture = getImage(getCodeBase(), .image/word1.gif.);  getCodeBase() เป็น method ที่ return ค่าตำแหน่งของแฟ้มข้อมูล และสร้างเป็น URL (Universal  Resource Location) เพื่ออ่านแฟ้มข้อมูลที่ต้องการ
2. แสดงแฟ้มข้อมูลรูปภาพที่จอของ Applet โดยใช้ method drawImage และสั่งประมวลผลที่ method paint โดยผ่าน class Graphics ดังนี้
lb2.setFont(font1);
lb2.setLocation(20, 40);
add(lb2);
add(txt1);
lb3.setFont(font1);
lb3.setLocation(20, 60);
add(lb3);
add(txt2);
add(calculate);
calculate.setBounds(20,250,80,25);
add(reset);
calculate.addActionListener(this);
reset.addActionListener(this);
txt1.requestFocus();
}
public void start() {
calculate.addActionListener(this);
reset.addActionListener(this);
txt1.requestFocus();
}
public void actionPerformed(ActionEvent thisEvent) {
if (thisEvent.getActionCommand().equals(“Reset”)) {
txt1.setText(“ “);
txt2.setText(“ “);
txt1.requestFocus();
}
else {
t1 = txt1.getText().trim();
Double x = new Double(t1);
double r = x.doubleValue();
double area = Math.PI*r*r;
txt2.setText(“ “+area);
}
}
}
public void paint (Graphics g) {
g.drawImage(the_picture, x, y, this); // the_picture คือ object จาก class Image
// x และ y คือ ตำแหน่งจากมุมบนซ้าย ที่จะใช้ในการแสดงภาพ
}

การเขียนโปรแกรมรับข้อมูลทาง keyboard แบบ Applet

หัวข้อพิเศษไอที, Java Applet No Comments »

        การเขียนโปรแกรมเพื่อรับข้อมูลผ่าน keyboard แบบ Applet ต้องเลือกใช้ class TextField หรือ TextArea  สำหรับ class TextField มีการจัดการดังนี้
1. การกำหนดให้ cursor พร้อมรับข้อมูล ณ text field ทำได้ด้วย method requestFocus()
2. การผ่านค่าข้อมูลที่ผู้ใช้บริการได้บันทึกใน TextField มายังโปรแกรมเพื่อประมวลผล ทำได้โดยใช้ methodgetText()
3. การแสดงผลที่ TextField ทำได้โดยใช้ method setText()
ตัวอย่าง
public void actionPerformed(ActionEvent e) {
System.out.println(e);
System.out.println(e.getActionCommand());
if (e.getActionCommand().equals(“Red”))
textColor = Color.red;
else if (e.getActionCommand().equals(“Blue”))
textColor = Color.blue;
else if (e.getActionCommand().equals(“Green”))
textColor = Color.green;
else if (e.getActionCommand().equals(“Bigger Font”))
fontSize += 5;
else if (e.getActionCommand().equals(“Smaller Font”))
fontSize -= 5;
repaint();
}
}
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class CalculateArea extends Applet implements ActionListener {
Label lb1 = new Label(“Please Enter the radius of the circle”);
Label lb2 = new Label(“Radius: “);
Label lb3 = new Label(“Area: “);
TextField txt1 = new TextField(10);
TextField txt2 = new TextField(10);
String t1;
Font bigFont = new Font(“TimesRoman”, Font.ITALIC, 24);
Font font1 = new Font(“TimesRoman”, Font.ITALIC, 16);
Button calculate = new Button(“Calculate”);
Button reset = new Button(“Reset”);
public void init() {
lb1.setFont(bigFont);
lb1.setLocation(20,20);
add(lb1);

การสร้าง component และนำไปแสดงที่จอภาพ

หัวข้อพิเศษไอที, Java Applet No Comments »


 Component คือ object ที่ปรากฏอยู่บนหน้าจอ window เช่น ปุ่ม (button) ส่วนสำหรับแสดงข้อความ (label)  ในการสร้าง component ประกอบไปด้วย 2 ขั้นตอนหลัก คือ
1. สร้าง object ของ component ที่ต้องการ
2. เพิ่ม object ที่ถูกสร้าง ลงในส่วนของ container ด้วยคำสั่ง add() ( add() เป็น method ใน class Container  ซึ่งจัดเป็น Applet ประเภทหนึ่ง ) ในส่วนของการเพิ่ม object ที่ต้องการให้ปรากฏใน container เมื่อเริ่มโปรแกรม ควรทำใน method init() ซึ่งเป็นส่วนที่ Applet จะเริ่มต้นทำงานหากมีการตอบสนองต่อผู้ใช้ให้ทำการกำหนดขั้นตอนการประมวลผลในส่วนของ Listener  และต้อง overload method action Performed()

หลักการในการเขียนโปรแกรมด้วย Applet

หัวข้อพิเศษไอที, Java Applet No Comments »


 การเขียนโปรแกรมแบบ Applet จะเป็นการทำงานในรูปของ GUI (Graphical User Interface) ในการเขียนโปรแกรมแบบนี้ ต้องพิจารณาสิ่งต่างๆ ต่อไปนี้
1. พิจารณา class ที่จะนำมาใช้งานเป็น class member หรือ instance member หากเป็นการใช้งาน instance member จะต้องมีการสร้าง  object  ด้วยคำสั่ง new เพื่อที่จะได้เรียกใช้ method ต่างๆ ได้ ซึ่งการสร้าง object เหล่านี้ จะปรากฏบนจอภาพได้ ก็ต่อเมื่อใช้คำสั่ง add() เพื่เพิ่ม object เข้าไปใน container ซึ่งเป็นพื้นที่ที่ใช้ในการแสดง object ต่างๆ ของ applet ก่อน
add(messageAction);
add(messageStop);
add(messageDestroy);
add(pressButton);
pressButton.addActionListener(this);
}
public void start() {
++countStart;
display();
}
public void display() {
++countDisplay;
messageInit.setText(“init() ”+countInit);
messageStart.setText(“start() “+countStart);
messageDisplay.setText(“display() “+countDisplay);
messageAction.setText(“actionPerformed() ” + countAction);
messageStop.setText(“stop() ”+countStop);
messageDestroy.setText(“destroy() “+countDestroy);
}
public void stop() {
++countStop;
display();
}
public void destroy() {
++countDestroy;
display();
}
public void actionPerformed(ActionEvent e) {
++countAction;
display();
}
}
2. ต้องคำนึงถึงภาพลักษณ์ที่จะปรากฏบนจอภาพ ว่าจะให้อยู่ในรูปแบบใด
3. object ที่จะสร้างขึ้น จะให้อยู่ในช่วงชีวิตใดของ Applet
4. การประมวลผลที่ต้องการให้ object ติดต่อกับผู้ใช้เป็นแบบใด วิธีที่ง่ายที่สุดคือ เรียกใช้ method  actionPerformed() ซึ่งเป็น method ของ class แบบ interface ชื่อ ActionListener ดังนั้นต้องประยุกต์ใช้แบบ implements โดยต่อท้าย extends Applet ในส่วนของการประกาศ class

จาก Applet มาสู่ Application

หัวข้อพิเศษไอที, Java Applet No Comments »

     สิ่งหนึ่งที่แตกต่างกันระหว่างจาวาที่เป็น Applet และจาวาที่เป็น Application ก็คือการทำงานของมันเพราะ Applet ต้องอาศัย HTML และเว็บบราวเซอร์ และอีกสิ่งหนึ่งที่ต่างกันก็คือ ส่วนที่เป็นฟังก์ชั่น main() ภายในโปรแกรมจาวา  จากโปรแกรม Easy.java และ Window.java ที่เราได้ทดลองสร้างกันจะพบว่า รายละเอียดภายในโปรแกรมจะมีอยู่ฟังก์ชั่นหนึ่งที่เหมือนกัน นั่นคือ ฟังก์ชั่น main() โปรแกรมจาวาที่เป็น Appication จะต้องมีฟังก์ชั่น main() แต่โปรแกรมจาวาที่เป็น Applet ที่ไม่จำเป็นต้องมีฟังก์ชั่นนี้ มันจะมีฟังก์ชั่นพวก init() , start() , stop() เข้ามาเป็นตัวควบคุมแทน  เพราะฉะนั้น จากโปรแกรมจาวาที่เป็น Applet เราสามารถใช้วิธีง่าย ๆ เพื่อแปลงจากความเป็น Applet ให้มาทำงานแบบ Application ได้ โดยเปลี่ยนการสืบทอดคลาสจาก Applet มาเป็น Frame และนำโค๊ดโปรแกรมจากฟังก์ชั่น init() ใน Applet มาไว้ในคอนสตรัคเตอร์ของ Application และทำการเพิ่มฟังก์ชั่น main() ลงไปในโปรแกรม ส่วนรายละเอียดของฟังก์ชั่นอื่น ๆ เช่น init() , start , stop ก็เก็บไว้ในส่วนที่เหมาะสมเช่น คอนสตรัคเตอร์ และดีสตรัคเตอร์ เป็นต้น
จาวาแอ็พเพล็ต (Java Applet)

     Applet เป็นโปรแกรม Java อีกชนิดหนึ่งที่มี จุดประสงค์คือ จะนำมาใช้ร่วมกับการสร้าง Web Page เพื่อช่วยเพิ่มประสิทธิภาพการทำงานของ Web Page ให้ดียิ่งขึ้น เช่น นำ Applet มาช่วยสร้างกราฟฟิค นำ Applet มาช่วยคำนวณตัวเลข เป็นต้น แต่อย่างไรก็ตาม Applet ก็มีขีดความสามารถและข้อกำหนดต่าง ๆ ที่จำกัดมากกว่า Application

1.2.1 โครงสร้างของ Applet

     โปรแกรม Java หรือที่เรียกว่า “ Java Application “ นั้นสามารถทำงานได้ด้วยตนเองโดยไม่ต้องอาศัยโปรแกรมอื่นมาช่วยทำงาน แต่โปรแกรม “ Java Applet “ ไม่สามารถทำงานได้ด้วยตนเอง โดยการทำงานของโปรแกรม “ Java Applet “ นั้นจะต้องทำงานผ่าน Browser เช่น IE , Applet Viewer เป็นต้น ดังที่ได้กล่าวไปแล้วว่า Java Applet ไม่สามารถทำงานได้ด้วยตัวเองแต่จะต้องทำงานภายใต้ Browser ด้วยเหตุผลดังกล่าวนี้จึงทำให้โครงสร้างของโปรแกรม “Java Applet “ แตกต่างกับโครงสร้างของโปรแกรม “ Java Application “
โครงสร้างของ “ Java Applet ”

init()

start()
destroy()
stop()
paint()
หลังจาก init() ถูกเรียกใช้งานแล้ว
กลับไปแสดงผลลัพธ์ของหน้าเดิม
ออกจากโปรแกรม
Web Page ถูกเรียกใช้
init()
start()
destroy()
stop()
paint()
หลังจาก init() ถูกเรียกใช้งานแล้ว
กลับไปแสดงผลลัพธ์ของหน้าเดิม
ออกจากโปรแกรม
Web Page ถูกเรียกใช้

รูปที่ 1-4 แสดงลำดับการเรียกใช้ Methods ต่าง ๆ ภายใน Applet ตามลำดับ
               
     จะเห็นว่าโครงสร้างของ Java Applet ไม่มี Method “ main()”  เหมือนใน Application ( หากกำหนดไว้ก็ได้แต่จะไม่ถูกเรียกใช้งาน ) ทั้งนี้โครงสร้างของ Applet จะต้องประกอบไปด้วย Method ดังนี้คือ init() , start() , stop() , paint() และ destroy() ซึ่งลำดับการทำงานของ Method ดังกล่าวแสดงได้ดังนี้
     init()  เป็น Method แรกที่ถูกเรียกใช้งานทันทีเมื่อ load applet ขึ้นมาโดย Web Browser ( เหมือนกับ Constructor Method ของ Class ทั่วไป )

     start() ถูกเรียกใช้หลังจาก Method “ init()” ทำงานเสร็จแล้ว หรือเมื่อไปมีการเลื่อนไปที่ Web Page หน้าอื่น ๆ และมีการกลับมายังหน้าเดิมอีก ( หน้าที่มีการเรียกใช้ Applet ) Method “start()” ก็จะถูกเรียกใช้งานอีกครั้งหนึ่ง แต่ไม่เรียก Method “init()” )

     paint() เป็น Method ที่ใช้กับการทำงานแบบกราฟฟิคของ Applet สามารถเรียกใช้เมื่อไรก็ได้ แต่โดยปกติ Method นี้จะถูกเรียกใช้เองโดยอัตโนมัติหลังจากทำงานใน Method “start()”  เสร็จ
     stop() ถูกเรียกใช้เมื่อต้องการให้ Applet หยุดทำงานชั่วคราวจนกว่าจะมีการเรียกใช้ Method “start()”  อีกครั้ง หรือถูกเรียกใช้เมื่อมีการย้ายการทำงานจาก Web Page หนึ่งไปยังอีก Web Page หนึ่ง
     destroy() ถูกเรียกใช้เมื่อต้องการปิด Applet ซึ่งโดยปกติ Method นี้จะถูกเรียกใช้เมื่อเรากดปุ่ม Close ของ Browser โดยเมื่อมีการกดปุ่ม Close ของBrowser โปรแกรมจะไปเรียกใช้ Method “stop()” ก่อนเพื่อหยุดการ
ทำงานของ Applet หลังจากนั้นจึงมาเรียกใช้ Method “destroy()” อีกครั้ง
หนึ่งเพื่อนปลดปล่อย Resource ต่าง ๆ ที่ Applet ใช้อยู่คืนให้กับระบบปฏิบัติการ

1.2.2 การสร้างและเรียกใช้งาน Applet

     การสร้างโปรแกรม Java Applet นั้นสามารถสร้าง Class เหมือนกับ Classทั่วไป แต่ Class ดังกล่าวจะต้องขยายมาจาก Class “JApplet” (Class “JApplet” อยู่ใน Package “javax.swing”) เสมอเพราะเราต้องการใช้งานคุณสมบัติของ Applet สำหรับ Method ทั้ง 5 ที่ได้กล่าวไปแล้วในหัวข้อก่อนหน้านี้ไม่จำเป็นต้องกำหนดไว้ทุกตัวก็ได้โดยสามารถเลือกใช้เฉพาะตัวที่จำเป็นได้ หลังจากสร้าง Class ดังกล่าวเสร็จแล้วใช้ Save และคอมไพล์ตามปกติ  หลังจากคอมไพล์เสร็จแล้วเมื่อต้องการเรียกใช้ Class ดังกล่าวก็สามารถทำได้โดยเรียกใช้ผ่านไฟล์ HTML โดยเราจะต้องไปเขียน Code การเรียกใช้ไฟล์ .Class ดังกล่าวไว้ภายใน Tag “Applet” ของไฟล์ HTML ด้วย (ไม่สามารถเรียกใช้ด้วยคำสั่ง Java ได้) 

     FileName  หมายถึง  ชื่อไฟล์ Applet (ไม่ต้องระบุนามสกุลก็ได้) ที่ต้องการนำไปทำงานใน Web Page

      WIDTH,HEIGHT  หมายถึง  ใช้กำหนดความกว้างและความสูงของ Applet ที่ต้องการแสดง (มีหน่วยเป็น pixel) เมื่อได้ไฟล์ HTML ที่มีการกำหนด Code การเรียกใช้ Applet แล้วให้นำไฟล์ HTML ดังกล่าวไปรันด้วย Browser ตัวในก็ได้ เช่น IE เป็นต้น หรืออาจจะรันผ่าน Appletviewer ซึ่งเป็นเครื่องมือของ Java ก็ได้ หากรันด้วย Appletviewer ให้ใช้รูปแบบคำสั่งดังนี้

                                รูปแบบ

 Appletviewer “fileName.HTML”

                               
 

เครื่องมือในการพัฒนาโปรแกรมจาวา

หัวข้อพิเศษไอที, Java Applet No Comments »

เครื่องมือในการพัฒนาโปรแกรมจาวา
เครื่องมือในการพัฒนาโปรแกรมภาษาจาวามีมากมายหลายโปรแกรมในปัจจุบัน ตั้งแต่โปรแกรมสร้างจาวาแอพเพล็ต เช่น JDK, Jamba หรือ AppletAce ไปจนถึงโปรแกรมสร้างจาวาแอพพลิเคชั่นใหญ่ ๆ เช่น Visual Cafe หรือ Visual J++  จาวาได้เตรียมไลบราลี่และส่วนประกอบจำเป็นต่าง ๆ ในการเขียนโปรแกรมมาให้ เพื่อให้สามารถพัฒนาโปรแกรมได้ง่าย ๆ และธรรมดาที่สุด เหมือนการกลับไปสู่การพัฒนาโปรแกรมแบบเดิม โดยใช้โปรแกรม Notepad ธรรมดา ๆ หรือโปรแกรม Vi ในยูนิกส์ ก็สามารถสร้างโปรแกรมภาษาจาวาได้  หากเราไม่พูดถึงข่าวที่ว่า SDK for Java ของไมโครซอฟต์ไม่สามารถนำไปรันข้ามแพลตฟอร์มได้ ก็ขอแนะนำให้หา SDK for Java มาทดลองใช้ดู ถึงแม้ว่าโปรแกรมจาวาที่คอมไพล์โดย SDK for Java จะมีปัญหาในการ Cross Platform ก็ตาม แต่เราก็ยังสามารถนำซอร์ดโค๊ดไปคอมไพล์ด้วย JDK ในระบบอื่นได้อยู่ เพราะฉะนั้นตรงนี้จึงไม่เป็นปัญหา เพราะบทความนี้ จะเสนอการเขียนโปแรกรมบนวินโดวส์ด้วยภาษาจาวาโดยเฉพาะ
การคอมไพล์และรันโปรแกรมภาษาจาวาด้วย JDK
JDK จะมีโปรแกรม 2 ตัวที่จะแนะนำให้รู้จักกันก่อน ซึ่งก็คือตัวคอมไพเลอร์ (Compiler) และตัวแปลภาษา (interpretor)
การคอมไพล์โปรแกรมภาษาจาวา
javac.exe เป็นคอมไพล์เลอร์ภาษาจาวาของ JDK ผลที่ได้จากการคอมไพล์ก็คือไฟล์นามสกุล.class ซึ่งจะใช้ในการคอมไพล์ได้ทั้ง Applet และ Application รูปแบบการใช้งานก็แสนจะง่าย ดังนี้
javac program.java
ตัวอย่างเช่น หากเราต้องการคอมไพล์โปรแกรม test.java ให้คุณพิมพ์คำสั่งที่คอมมานด์ไลน์ดังนี้
C:> javac test.java
คราวนี้คุณก็จะได้ไฟล์ test.class มาพร้อมทำการรันเรียบร้อยแล้ว
การรันโปรแกรมภาษาจาวา
ในการรันโปรแกรม .class นั้น เราจะใช้โปรแกรม java.exe หรือ jview.exe ซึ่งเป็นตัวแปลโปรแกรมจาวาที่จะมีมาให้เมื่อคุณติดตั้ง Internet Explorer หรือ JDK แล้ว โปรแกรมนี้จะใช้สำหรับรันโปรแกรมจาวาที่เป็น Application เท่านั้น รูปแบบของ Jview.exe มีลักษณะดังนี้
jview ชื่อไฟล์  หรือ  java ชื่อไฟล์
ตัวอย่างการใช้ jview รันโปรแกรม test.class จะต้องเรียกดังนี้
C:> jview test
การสร้างคอนโซลแอปพลิเคชั่น
การเขียนโปรแกรมในโหมดคอนโซล (Console Application) หรือโหมดคอมมานด์ไลน์เป็นโปรแกรมในลักษณะของบรรทัดคำสั่ง เช่นเดียวกับการเขียนโปรแกรมบนดอส คือ โปรแกรมจะเรียก Dos Prompt และจะทำงานเช่นเดียวกับโปรแกรม ftp หรือโปรแกรม ping ที่มีมาพร้อมกับการติดตั้งวินโดวส์นั่นเอง
การเริ่มต้นกับภาษาจาวา
เราควรจะเริ่มกันตรงที่การสร้างโปรแกรมในแบบคอนโซลนี้กันก่อน เพื่อศึกษารูปแบบของภาษา , การใช้เงื่อนไขต่าง ๆ ตลอดจนถึงการใช้ตัวคอมไพเลอร์และตัวแปลภาษาจาวา โปรแกรมภาษาจาวาจะทำงานอยู่ภายในคลาส ๆ เดียว ซึ่งภายในคลาสนั้นจะต้องมีฟังก์ชั่น main () รวมอยู่ด้วยเช่นเดียวกับภาษาซีนั่นเอง โปรแกรมแรกที่เราจะมาทดลองกันมีดังนี้
ให้พิมพ์โปรแกรมต่อไปนี้ด้วย Notepad หรือโปรแกรม edit ในโหมดดอสโดยเซฟในชื่อ Easy.java
class Easy{
public static void main(String arg[]){
System.out.println(”Easy Java “);
}
}
จากนั้นให้ทดลองคอมไพล์โปรแกรมโดยใช้ javac.exe ดังต่อไปนี้
c:>javac Easy.java
จะได้ไฟล์ Easy.class มา หากลองใช้คำสั่ง dir ดูรายชื่อไฟล์ ให้คุณทำการคอมไพล์โดยใช้ jview.exe ดังรูปแบบต่อไปนี้ จะพบกับข้อความว่า Easy Java ปรากฏอยู่บนจอภาพ
c:>java Easy
Easy Java

การเขียนโปรแกรมบนวินโดวส์ด้วยจาวา

หัวข้อพิเศษไอที, Java Applet No Comments »

      เราคงทราบและรู้จักกับภาษาจาวากันดี หากคุณเป็นผู้หนึ่งที่ชอบท่องเที่ยวบนอินเตอร์เน็ต หรือชอบการเขียนโปรแกรม แต่ถ้าจะถามว่าคุณรู้จักจาวา หรือคุณใช้จาวาเขียนอะไร หลาย ๆ ท่านอาจจะบอกเป็นเสียงเดียวกันว่า เขียนแอพเพล็ต (Applet)
ภาษาจาวามีความสามารถในการพัฒนาแอพเพล็ต และนอกจากนั้น เรายังสามารถใช้จาวาพัฒนาโปรแกรมบนแพลตฟอร์มได้อีกด้วย ไม่จำเป็นว่าจาวาจะใช้พัฒนาแอพเพล็ตได้เพียงอย่างเดียวการพัฒนาโปรแกรมบนวินโดวส์ด้วยภาษาจาวา ก็มีลักษณะเช่นเดียวกับการพัฒนาโปรแกรมด้วย Visual Basic หรือภาษา C++  นั่นเอง ซึ่งเราจะต้องสร้างวินโดวส์ สร้างปุ่มกดหรือคอนโทรลต่าง ๆ ไว้ภายในวินโดวส์ และใช้มันทำงานเหมือนกับโปรแกรมทั่ว ๆ ไป เราอาจไม่พบเห็นโปรแกรมที่เขียนขึ้นโดยภาษาจาวาบ่อยนัก อาจเป็นเพราะจาวาไม่เหมาะในการสร้างแอพพลิเคชั่นก็เป็นได้ อาจจะด้วยความล่าช้าเพราะมันทำงานบน Virtual Machine แต่ในความสามารถบางอย่างของภาษาจาวานั้น การพัฒนาโปรแกรมสามารถทำได้ง่ายและเร็วกว่าภาษาอื่น
จาวาเป็น OOP
จาวาเป็นภาษาหนึ่งที่อาจเรียกได้ว่าสืบทอดมาจากภาษา C++ อีกทีหนึ่ง เป็นภาษาที่รวมความเป็น OOP (Object Oriented Programming) พื้นฐานทางภาษาของจาวาอยู่ในรูปของภาษา C++ ทั้งการกำหนดฟังก์ชั่น การสร้างออบเจ็กต์ต่าง ๆ และได้ตัดความซับซ้อนและข้อเสียบางอย่างออกไป ถ้าเราเขียนสมการของภาษาจาวา เราสามารถเขียนได้ดังนี้
ภาษาจาวา = “ภาษา C++” - “ความซับซ้อน” + “ระบบความปลอดภัย” + “การข้ามแพลตฟอร์ม”
พื้นฐานการเขียนโปรแกรมภาษาจาวา จะต้องรู้จักกับการเขียนโปรแกรมแบบ OOP เสียก่อนสักเล็กน้อย เพื่อให้การเขียนโปรแกรมเป็นไปได้ง่ายขึ้น หากเคยเขียนโปรแกรมบนวินโดวส์มาก่อนสามารถศึกษาภาษานี้ได้ไม่ยากเลย
ความสามารถในการทำงานข้ามระบบ
ในการสร้างโปรแกรมหรือจาวาแอพเพล็ต คุณจะต้องสร้างซอร์สโค๊ดภาษาจาวาและทำการคอมไพล์โปรแกรมด้วย Java Compiler โปรแกรมจะอยู่ในรูปของไบต์โค๊ด (Byte Code) และสามารถนำมันไปรันในระบบต่าง ๆ ได้หลายระบบ เช่น UNIX, Mac หรือ Windows เราเรียกการทำงานลักษณะนี้ว่า การข้ามระบบหรือ Cross Platform
คุณสมบัติของภาษาจาวาข้อนี้อาจจะไม่พบในการเขียนโปรแกรมบนวินโดวส์ด้วยภาษาอื่น ๆ เช่น Visual Basic หรือ Visual C++ ซึ่งไม่สามารถนำมันไปรันบนระบบอื่นได้ ยกเว้นระบบวินโดวส์อย่างเดียวแต่จาวาได้ทำลายกำแพงกั้นระหว่างระบบนี้ลงได้แล้ว

การสร้างโปรแกรมบนวินโดวส์
การสร้างโปรแกรมบนวินโดวส์ด้วยภาษาจาวา ก็มีลักษณะเช่นเดียวกับการเขียนโปรแกรมด้วย Visual Basic เครื่องมือและอุปกรณ์ที่ใช้ในการพัฒนาโปรแกรมจาวาที่น่าสนใจมีมากมายหลายตัว แต่สามารถใช้โปรแกรม Edit.com หรือ Notepad ในการเขียนโปรแกรม ลองพิมพ์โปรแกรมต่อไปนี้ จากนั้นเซฟในชื่อ Window.java
import java.awt.*;
public class Window extends Frame{
public Window() {
setBackground(Color.lightGray);
setTitle(”Title Bar”);
}
public void paint(Graphics g) {
resize(200,200);
}
public static void main(String args[]) {
Window win = new Window();
win.show();
}
}
เมื่อพิมพ์เสร็จแล้ว ให้คอมไพล์โปรแกรมโดยใช้วิธีต่อไปนี้
C:>javac Window.java
คราวนี้ลองรันโปรแกรม Window.class เพื่อดูผลการทำงาน โดยพิมพ์คำสั่งต่อไปนี้
C:>java Window
จากนั้นจะพบกับวินโดวส์เปล่า ๆ บนจอภาพ เมื่อรันโปรแกรม จะไม่สามารถกลับไปสู่ Prompt ได้อีก หากต้องการปิดโปรแกรม Window นี้ ให้กดปุ่ม Ctrl+C ที่บรรทัดคำสั่ง โปรแกรมจะปิดและกลับสู่ Prompt อีกครั้ง
 

วิธีใส่ Java Applets ลงในเพจ

หัวข้อพิเศษไอที, Java Applet No Comments »

นี่ก็เป็นวิธีง่ายๆ อีกเช่นกันการใส่ java applet ลงไปในเพ็จไม่ยากเลยแต่การเขียน java applet นั้นเป็นอีกเรื่องหนึ่ง และจากการที่ได้ศึกษามา ในมุมของเว็บ designer จำเป็นต้องรู้วิธีการนำสคริปต์ ต่างๆ มาใช้งานเป็น แต่ไม่จำเป็นเสมอไป ที่จะต้องสามารถ พัฒนาโปรแกรมได้อย่าง
1. อันดับแรกให้นำไฟล์ .class files ทั้งหมดที่จำเป็นต้องใช้ ในการรัน applet มาซึ่งมีอยู่มากมาย และหลายแห่งบน Internet ที่สามารถหาได้ 
2. ตอนนี้ใช้ HTML editor ทำการเปิดเพ็จที่ต้องการใส่ applet ขึ้นมาตัดสินใจไว้ก่อนว่าควรใส่ไว้ในตำแหน่งไหนของเพ็จ
3. ที่ใดที่ได้ applets มาที่นั่นควรจะมีคำอธิบายวิธีการใช้ หรือติดตั้งให้ด้วยเสมอพร้อมกับโค๊ดที่ถูกต้อง correct code เพื่อนำไปใส่ในเพ็จที่ต้องการติดตั้ง applet ซึ่งโดยปกติจะมีลักษณะคล้ายๆ แบบนี้
&ltapplet code=”codename.class” codebase=”dir/to/applets”>
&ltparam name=”value” value=”value1″>
&ltparam name=”value” value=”value2″>
&ltparam name=”value” value=”value2″>

4. ทำการ Copy โค๊ดนี้ไปใส่ในเพ็จ ปรับแก้ไขตามที่ต้องการแล้วทำการ save ไฟล์
5. ทำการ FTP เพ็จนั้นเช่นเดียวกับ .class files ไปยัง public_html directory บน server และจะเป็นการดีถ้าจะกำหนดชื่อ directory ว่า “classes” อยู่ภายใน public_html directory tree อีกทีเพื่อใช้เก็บไฟล์นามสกุล .class files
6. เปิดบราวเซอร์ที่สามารถแสองผล java ขึ้นมา (Netscape 2.0+ หรือ Microsoft Internet Explorer 3.0+) แล้วไปที่เพ็จ ตอนนี้ควรจะสามารถเห็น applet มีชีวิตขึ้นมาแล้ว และควรจะดูดีด้วย.
 ผู้ให้บริการ Internet Service Providers บางแห่งอาจใหม่อนุญาตให้ใช้ Java applets บน server ของผู้ให้บริการนั้นๆ ได้ เพราะผู้ให้บริการเหล่านั้นเกรง “พวก hacker ที่นิสัยไม่ดี” แม้นว่ากว่า 99% ของ applets บน internet จะสะอาดและปลอดภัย แต่ก็มักมี idiots hacker ที่คิดว่าตัวเองฉลาดพยายามสร้าง applets ที่สามารถติดไวรัสให้กับ computer pc ได้เข้ามาโจมตีเสมอฉะนั้นควรจะระวังและตระหนักอัตราเสี่ยงในจุดนี้เวลาใช้เสมอ

สร้างภาพเคลื่อนไหวอย่างง่าย

หัวข้อพิเศษไอที, Java Applet No Comments »

การรันเธรดอย่างต่อเนื่องพร้อมๆ กับการทำงานของ  Applet  นั้น  จะทำให้เกิดภาพเคลื่อนไหวอย่างต่อเนื่องได้เมื่อในแต่ละครั้งของการเปลี่ยนแปลงในหนึ่งวินาทเป็นการเปลี่ยนแปลงที่เกิดขึ้นทีละน้อยอย่างสม่ำเสมอ  ขั้นตอนในการเขียน  Applet  สำหรับภาพเคลื่อนไหว  (AnimationTemplate.java)

1.  สร้างคลาส  Applet    ที่เป็น  Interface  ของเธรด  ‘Runnable’

                Public  class  Animationtemplate  extends  java.Applet  in\mplements  Runnable {

                }

2.  สร้างตัวแปร  Thread  ขึ้นมาสำหรับการสร้างและรันเธรดใน  Applet  และสร้างตัวแปร  delay  สำหรับช่วงเวลาระหว่างการเปลี่ยน frame

                Thread  amin

                       Int  delay;

3.  ในเมธอด   init()  ของ   Applet  ให้ทำการกำหนดค่าจำนวน  frame  ในหนึ่งวินาที

          Public  void  start(){

                  Amin = new Thread(this);

                  Amin.start();

          }

4.  ในเมธอด  start()  ของ  Applet  ให้ทากรสร้างเธรดและ  start  เธรด

           Public  void  start(() {

                    Amin = new Thread(this);

                   Amin.start();

          }

5.  ในเมธอด  run()  ของเธรด  Runnable  ให้กำหนดการกระทำในระหว่างที่มีการรันเธรด  อาจใช้เมธอด  repaint()  เอทากรวาดรูปใหม่

         Public  void  run() {

                  While(Thread.currentThread() == amin ) {

                            Repaint();

                            Try{

                                  Thread.sleep(delay);

                                   } catch  (interruptedExeption e) {

                                            Break;

                             }

                     }

             }

6.  ในเมธอด  stop()  ของ  Applet  ให้หยุดการรันเธรดก่อนออกจาก Applet  เอไม่ให้เธรดค้างอยู่ในระบบและเป็นการคืนทรัพยากรให้ระบบด้วยการกำหนดให้เธรดเป็น  null

                Public  void  stop() {

                                Amin = null;

                }

7.  กำหนด  graphic  ต่าง ๆ ที่ต้องการวาดแต่ละครั้งลงในเมธอด  paint()  ของ Applet  ทั้งนี้ควรจะเป็นโปรแกรมที่มีการเปลี่ยนไปตาม  “frame”  ที่เปลี่ยนไปตามการรันเธรดเพื่อให้ได้ภาพที่แตกต่าง

                Public  void  paint(Graphics g) {

                                // รูปภาพที่ต้องการวาด

                }

8.  ใน  HTML  สำหรับ Applet  นี้อาจใช้  TAG  ในการระบุค่าจำนวน  frame  ที่ต้องการแล้วใช้เมธอด  getParameter() ในการรับค่ามาใช้ใน Applet  เพื่อความสะดวกถ้าต้องมีการแก้ไขค่าบ่อยๆ

                // ใน  HTML

   

                        

                       

 

        // ใน Applet  (เมธอด  init() )

        Public  void  init() {

                   Int frameapage = getParameter(“frameApage”):

                         Delay = 1000  / frameApage;

              }

Sound
                ในภาษา  Java  นั้นมีสิ่งที่เรียกว่า  Java  Sound  Engine  ทำหน้าที่อ่านและเล่นข้อมูลประเภทเสียงได้ทั้งใน  Application  และใน Applet  โดยชนิดของไฟล์เสียงที่สามารถเล่นได้คือ  AIFF ,AU ,WAV , MIDI ,RMF  วิธีเล่นไฟล์เสียงใน  Applet    โดยชนิดของไฟล์เสีงที่สามารถเรียกเมธอด Applet.getAudioClip()  และทำการควบคุมการเล่นเพลงนั้นผ่านเมธอด  AudioClip.loop()  และ AudioClip.stop()

                การเล่นเพลงแบบลูปหรือเพลงเบื้องหลังนั้นอาจสร้างความรบกวนได้  เนื่องจากบางครั้งมันจะเล่นไปเรื่อยๆ ไม่หยุดจนกว่าบราวเซอร์นั้นจะถูกปิดไปเลย   แม้ว่าเราจะสั่งให้มันหยุดแล้วก็ตาม  ส่วนการเล่นเพลงแบบปกตินั้นจะใช้เมธอด  play()  เมื่อใดก็ตามที่ต้องการให้เล่นนั่นเอง

 

Animation

หัวข้อพิเศษไอที, Java Applet No Comments »

Java  สามารถสร้างภาพเคลื่อนไหวได้หลากหลายรูปแบบ  โดยมีพื้นฐานอยู่ที่การสร้างภาพเคลื่อนไหวบนหน้าจอด้วยการวาดรูปแต่ละครั้งลงบน  “frame”  ด้วยความเร็วสูง  ปกติประมาณ  10  ครั้งต่อวินาที  ซึ่งการเปลี่ยนสกรีนหลาย ๆ ครั้งต่อวินาทีนั้นจำเป็นต้องสร้างเธรดขึ้นมาเพื่อจัดการกับ  Animation  loop

                รู้จักกับ  Thread
                ในคอมพิวเตอร์หนึ่งเครื่องมีหนึ่ง  CPU  สามารถทำงานได้เพียงหนึ่งอย่างเท่านั้น  ณ  เวลาหนึ่งๆ ดังนั้นในงานที่เราต้องการให้เกิดการทำงานไปพร้อมๆ กันเราจะต้องใช้เทคนิคโปรแกรมอย่างหนึ่งที่จะช่วยให้การทำงานเกิดขึ้นได้พร้อมๆ กน เราเรียกมันว่า  เธรด(Thread)

                เธรดนั้นก็คือ  หน่วยย่อยของการทำงานที่สามารถทำงานได้ด้วยข้อมูลที่มีอยู่ในตัวมันเอง  ตัวอย่างเช่น  ในโปรแกรม  Microsoft  Word  นั้นมีเธรดต่าง ๆ ทำงานอยู่เบื้องหลังมากมาย  ทั้งเธรดที่ทำหน้าที่ตรวจสอบความถูกต้องของตัวสะกด  เธรดที่คำนวณเลขหน้า  เธรดที่คอยตรวจสอบว่าต้องบันทึกแล้วหรือไม่  ฯลฯ  ซึ่งเธรดต่าง ๆ ทำงานไปพร้อมๆ กัน แต่เธรดเองก็จะมีลำดับความสำคัญในการทำงานไม่เท่ากัน เช่น เมื่อบางเธรดทำงานตัวที่เหลือต้องหยุดให้เธรดนี้ทำงาน

                การเขียนโปรแกรมด้วยเธรดนั้นอาจถูกเรียกว่า  Parallel  Programming  หรือการเขียนโปรแกรมคู่ขนาน ซึ่งโดยธรรมชาติแล้วมักจะมีความยุ่งยากในการจัดการ  แต่ตัวมันเองกบมีประโยชน์หลายอย่าง  เช่น  การที่ช่วยให้เราใช้งานทรัพยากรของระบบร่วมกันได้อย่างเต็มที่  รวมทั้งการทำ  Animation  จำเป็นต้องใช้  Screen  เดียวกัน  เป็นต้น

                ในการเขียนโปรแกรมที่มีหลายๆ เธรดทำงานพร้อมกันจะต้องมีกระบวนการที่เรียกว่า  Synchronize  เกิดขึ้น ซึ่งกระบวนการนี้จะช่วยให้การทำงานร่วมกนของเธรดต่างๆ ถูกต้องเสมอ  ไม่เกิดปัญหาจากการใช้งานร่วมกัน เช่น มีเธรดหนึ่งที่อ่านข้อมูลจากตัวแปรหนึ่งก่อนที่มันจะถูกหยุดทำงานโดยอีกเธรดหนึ่ง  ดังนั้นเมือ่มันกลัมาทำงานใหม่อีกครั้ง  ข้อมูลตัวนั้นอาจเกิดการเปลี่ยนแปลงไปโดยบที่เธรดแรกนั้นไม่ได้หวังว่าจะได้ลำดับการทำงานแบบนั้นก็เป็นได้

                การสร้าง  Thread
                ใน  Java  นั้นเราจัดการเธรดด้วยออบเจ็กต์ชนิด  Thread  นั่นเอง  มีเมธอด run()  ใช้ทำงานคู่กันเสมอโดยจะถูกกำหนดโปรแกรมโดยโปรแกรมเมอร์  จาวาเพียงแต่สร้างเมธอดว่าง ๆ ขึ้นมาให้เท่านั้น  เหมือนกับเมธอด paint()  ใน Applet

                การสร้างเธรดสามารถทำได้  2  วิธี  ดังนี้

1.  การ  implement  interface ‘Runnable’

Public  class  ClassName  implements  Runnable {

}

2. การ  extend  หรือสร้างคลาสย่อยของ  ‘Thread’

                Public  class  ClassName  extends   Thread  {

                }

ทั้งสองวิธีนั้นไม่ได้มีความแตกต่างอะไร  เพียงแต่การใช้  interface  ‘Runnable’  สามารถใช้กับงานได้หลากหลายกว่าการสร้างคลาสย่อยของเธรด  พิสูจน์ได้จากตัวคลาสของเธรดเองก็ถูกสร้างมาจากการ  implement  Runnable  เช่นกัน

                public  class  Thred  implements  Runnable {

                                public  void  run() {

                                                if  (target != null) {

                                                                target.run();

                                                }

                }

}

Applet สวยงามกับรูปทรงต่าง ๆ และการระบายสี

หัวข้อพิเศษไอที, Java Applet No Comments »

การทำให้ผู้ที่ไม่มีความรู้ทางด้านการเขียนโปรแกรมเกิดความประทับใจในโปรแกรมที่คุณเขียนขึ้นนั้น  คงจะไม่ใช่ความซับซ้อนของลูปหรือความยิ่งใหญ่ของคลาสที่แตกแขนงมากมายในโปรแกรม  แต่คงจะเป็นโปรแกรมที่เต็มไปด้วยกราฟิกสวยงามต่างๆ  มากกว่า

ดังนั้นการเขียน  Applet ที่มีความสวยงามน่าดึงดูดก็มีความสำคัญไม่แพ้กับการาโครงสร้างของคลาสที่จะใช้ใน Applet เช่นกัน หัวข้อนี้เราจะมาเรียนรู้การใช้กราฟิก ฟอนต์ และสีต่างๆ กัน

สิ่งสำคัญที่จำเป็นต้องใช้สำหรับการทำกราฟิกในโปรแกรม  Applet  ก็คือ  คลาสต่าง ๆ ที่อยู่ใน  Package  java.awt  ที่จาวาเตรียมไว้ให้และคลาสที่เรามักใช้อยู่บ่อย ๆ ก็คือ  คลาส  Graphics  โดยปกติแล้วเราจะ  import  เอาไว้ในทุกๆ  โปรแกรม  Applet  ดังนี้

Import java.applet.*; // สำหรับการเรียกใช้คลาส Applet

Import java.awt.*; // สำหรับการเรียกใช้คลาส Grzphics

 

Public class YourApplet extends Applet {
}
ระบบพิกัดตำแหน่ง (Coordinate)
ที่ต้องมาทำความรู้จักกับระบบพิกัดตำแหน่งของจาวานี้  ก็เนื่องจากว่าในการวาดอะไรลงไปที่  Applet จะต้องมีการระบุตำแหน่งที่จะวาดลงไปด้วย เช่น การวาดข้อความ ก็ต้องการจุกดที่จะวางข้อความนั้น ๆ ลงไป หรือการวาดเส้นอาจต้องการตำแหน่งจุดมากกว่าหนึ่งชุดก็คือ จุดเริ่มต้อนและจุดปลายของเส้น

ระบบพิกัดตำแหน่งของ  Java  นี้ใช้ระบบของพิกเซลเป็นหน่วยของการวัด  โดยมีต้นกำเนิดที่พิกัด (0,0) ที่ว่างอยู่ด้านมุมบนสุดซ้ายมือของหน้าจอ  Applet  โดยค่าของแกน  x  จะเพิ่มขึ้นทางขวา  และค่าของแกน  y จะเพิ่มขึ้นทางด้านล่าง  ซึ่งต่างจากระบบพิกัดตำแหน่งอื่น ๆ ที่จะวางจุดเริ่มต้นเอาไว้ที่มุมซ้ายด้านล่างสุด  และเพิ่มค่าแกน  y  ตามแนวตั้งขึ้นไปทางด้านบน
                ค่าของ  pixel  เป็นได้แค่ตัวเลขจำนวนเต็มเท่านั้น  นั่นหมายความว่าไม่สามารถทำการระบุตัวเลขทศนิยมสำหรับตำแหน่งการวาดรูปในระบบจาวาได้

                LINES
                การวาดเส้นอย่างที่ได้เกริ่นไว้เป็นการวาดเส้นตั้งแต่จุดเริ่มต้นจนถึงจุดปลาย  โดยมีเมธอดที่ใช้ในการวาดคือ  drawLine()  มีรูปแบบการใช้ดังนี้

                drawLine( x1,y1,x2,y2 );

                พารามิเตอร์ที่ต้องการคือ

                จุด (X1, y1) สำหรับจุดเริ่มต้นของเส้น

                จุด (X2, y2) สำหรับจุดปลายเส้น

เริ่มตัวอย่าง  HappyBirthDayApplet.java  ดังนี้

                Import  java.awt.*;

                Import  java.applet.*;

                Public  class  HappyBirthDayApplet  extends  Applet {

                   Public  void  paint(Graphics g) {

                      g.drawLine(20,10,180,10);

                         g.drawLine(20,190,180,190);

                                }

                }

และ  HappyBirthDayApplet.html  (ที่จะใช้แสดงผลลัพธ์ในหัวข้อถัด ๆ ไป)

 

               

               

               

จากตัวอย่างที่ผ่านมาเราจะได้ขอบของรูปภาพสองเส้น

                Rectangles
                ในการวาดรูปสี่เหลี่ยมแบ่งออกเป็น  2  แบบคือ  สี่เหลี่ยมทั่วไปและสี่เหลี่ยมที่มุมทั้วสี่มีลักษณะเป็นมนๆ

                สำหรับสี่เหลี่ยมทั่วไป

                drawRect(x,y,w,h);

พารามิเตอร์ที่ใช้คือ

                จุด  (x,y)  สำหรับจุดมุมบนซ้ายของสี่เหลี่ยม

                ค่า  w  ความกว้างของสี่เหลี่ยม

                ค่า  h  ความสูงของสี่เหลี่ยม

และยังมีเมธอด  fillRect()  สำหรับการวาดรูปสี่เหลี่ยมแบทึบที่มีรูปแบบการใช้เหมือนกับเมธอด  drawRect()  ดังนี้

                fillRect(x,y,w,h);

                //สำหรับสี่เหลี่ยมปลายมน

                drawRoundRect (x,y,w1,h1,w2,h2);

พารามิเตอร์ที่ใช้คือ

                จุด  (x,y)  สำหรับจุดมุมบนซ้ายของสี่เหลี่ยม

                ค่า  W1 ความกว้างของสี่เหลี่ยม

                ค่า  H1 ความยาวของสี่เหลี่ยม

                ค่า  W2 ความกว้างของสี่เหลียม รูปเล็กที่กำหนดขนาดของมุมบน

                ค่า  H2 ความสูงของสี่เหลี่ยม รูปเล็กที่กำหนดขนาดของมุมบน

เช่นกันสำหรับการวาดรูปสี่เหลี่ยมปลายแบบทึบที่มีรูปแบบการใช้และพารามิเตอร์เหมือนกันกับเมธอด  drawRoundRect()

                fillRoundRect(x,y,w1,h1,w2,h2);

มาถึงตรงนี้เราก็สามารถวาดกล่องกันได้แล้ว  โดยการเพิ่มคำสั่งที่ตามมานี้ลงในเมธอด  paint()  ของไฟล์    HappyBirthDayApplet.java

                g.drawRect(70,80,60,40);

                Oval
                การวาดวงกลมหรือวงรีทำได้โดยใช้เมธอด  drawOval()   หรือ   fillOval()  ที่กลวงกับทึบตามลำดับ  โดยมีรูปแบบการใช้ดังนี้

                // สำหรับวงกลมหรือวงรี   แบบโปร่งใส

                drawOval(x,y,w,h);

                // สำหรับวงกลมหรือวงรีแบบทึบ
                fillOval(x,y,w,h);

พารามิเตอร์ที่ใช้  มีความหมายดังนี้

                X,Y  หมายถึง  จุดเริ่มต้นของการวาดวงกลมหรือวงรีที่อยู่บนสุดด้านซ้ายมือ

                W,H  หมายถึง  ความกว้างและความสูงของวงกลมหือวงรี  (โดยในการวาดวงกลมค่าทั้งสองจะเท่ากัน)

                กลับไปที่กล่องของขวัญ  ซึ่งเราจะทำการวาดโบว์ผูกกล่องกันด้วยการเติมส่วนของโปรแกรมเข้าไปดังนี้

                g.fillRect(95,80,10,40);

                g.fillRect(70,95,60,10);

                g.fillOval(82,73,20,10);

                g.fillOval(98,73,20,10);

มาถึงจุดนี้เราก็ได้กล่องของขวัญหนึ่งกล่องกันแล้ว  จากนี้เราจะมาตกแต่งและเพิ่มคำอวยพรกันบ้าง

                Arcs
                ในการวาดทั้งหมดที่กล่าวมา  Arc  เป็นการวาดที่ซับซ้อนที่สุดโดย  Arc  คือการวาดส่วนหนึ่งของวงกลมหรือวงรีนั่นเองและใช้เมธอด  drawArc()  และ  fillArc  ในการวาด  ซึ่งมีรูปแบบการใช้ดังนี้

                //การวาดแบบโปร่ง

                drawArc(x,y,w,h,s,A);

                // การวาดแบบทึบ

                fillArc(x,y,w,h,s,A);

ค่าพารามิเตอร์ต่าง ๆ มี่ความหมายดังนี้

                X,Y  หมายถึง  จุดเริ่มต้นของการวาดวงกลมหรือวงรีแบบเต็ม

                w,h   หมายถึง  ความกว้างและความสูงของวงกลมหรือวงรีแบบเต็ม

                s       หมายถึง  มุมที่ใช้เป็นจุดเริ่มของ  Arc  หรือส่วนของวงกลมหรือวงรีรูปเต็ม

                A     หมายถึง  ขนาดของมุมวัดตั้งแต่จุดเริ่มต้อนของ  Arc  ไปจจนถึงจุดสิ้นสุด(ทิศทางทวนเข็มนาฬิกา)

                การสร้าง  Object  Font
                คลาส  Font  ใน  Package  java.awt  นั้นถูกใช้สำหรับการสั่งให้เมธอด  drawstring()  ทำการวาดหรือเขียนข้อความในลักษณะหรือรูปแบบของตัวอักษรที่ต่างๆ กัน  เช่น  การทำตัวหนา  ตัวเอียงของอักษร  การกำหนดแบบของตัวอักษรและแม้แต่การกำหนดขนาด

                Font  f = new   font(ชื่อของแบบตัวอักษร  ลักษณะของตัวอักษร  ขนาดของตัวอักษร);

1.  ชื่อของแบบตัวอักษร  ได้แก่  Arial , Faramond  หรืออื่น ๆ ที่มีในระบบที่กำลังประมวลผลโปรแกรมจาวานั้น ๆ อยู่ โดยแบบของตัวอักษรที่มีอยู่ในภาษา  Java  อยู่แล้ว  ได้แก่  TimesRoman , Helvetica , Courier , Dialog และ DailogInput  หมายถึง  ระบบอาจจะไม่จำเป็นต้องมีแบบตัวอักษรเหล่านี้ติดตั้งอยู่  ถ้าไม่ต้องการระบุแบบตัวอักษรสามารถใส่ “” แทนได้

2.  ลักษณะของตัวอักษร  ได้แก่ ตัวหนา  ตัวเอียง  ตัวปกติ  หรือตัวหนาและตัวเอียง  ซึ่งค่าที่จะใส่ลงไปนี้จะต้องเป็นค่าตัวเลขซึ่งแทนค่าลักษณะต่าง ๆ ที่กล่าวมาแล้วแต่การจำว่าค่าหมายเลขอะไร  เป็นลักษณะแบบไหนคงจะไม่ง่ายนัก  ดังนั้นจาวาจึงกำหนดตัวแปรคงที่ที่ใช้บอกถึงลักษณะต่าง ๆ ที่ใช้กันบ่อย ๆ ดังนี้

                Font.PLAIN  ลักษณะปกติ  “YOUR  FONT”  หรือ “ตัวอักษร”

                Font.BOLD  ลักษณะตัวหนา  “YOUR  FONT”  หรือ “ตัวอักษร”

                Font.ITALIC  ลักษณะตัวเอียง  “YOUR  FONT”  หรือ “ตัวอักษร”

                Font.BOLD+Font.ITALIC  ลักษณะตัวหนาและตัวเอียง  “YOUR  FONT”  หรือ “ตัวอักษร”

3.  ขนาดของตัวอักษร  มีค่าเป็นตัวเลขในระบบ  “point” หรือการกำหนดขนาดที่ใช้ในโปรแกรมเอกสารต่างๆ เช่น

                24  points   =   “ตัวอักษร ขนาด  24”
                // ตัวอย่าง  การสร้างอักษร  แบบ  Arial  ตัวหนา  และเอียง  ขนาด  20  points

                Font   f1 =   new  Font  (“Arial” , Font.BOLD +  Font.ITALIC, 20)

                // ตัวอย่าง  การสร้างอักษรทั่วไป  ตัวหนา  ขนาด  36  points

                Font   f2  =  new  Foint  (“ “ , Font,BOLD ,  36)

                เมื่อสร้างตัวอักษร รูปแบบ  และขนาดที่ต้องการได้แล้ว  ก็จะทำการกำหนดค่าก่อนการวาดหรือเขียนข้อความใด ๆ ลงไปบน  Applet  ซึ่งจะใช้เมธอด  setFont()  และ  drawstring()  โดยมีรูปแบบการใช้ดังนี้

                // การกำหนดค่ารูปแบบตัวอักษรลงบน  Applet 

                setFont (รูปแบบของอักษรที่สร้างจากหัวข้อที่แล้ว)ว

                //การวาดหรือเขียนข้อความลงบน Applet

                // x,y  เป็นค่าตำแหน่งบน Applet  ที่ต้องการวาดหรือเขียนข้อความลงไป

                การเพิ่มสีสันให้กับรูปวาดต่าง ๆ
                คลาสที่ใช้สร้างสีต่าง ๆ ขึ้นบน  Applet  หรือโปรแกรมขึ้นมานั่นก็คือคลาสหรือ  Object  Color  ซึ่งสามารถทำได้  2  ทางคือ

                1.  การกำหนดค่าของสีด้วยเลขทศนิยม  ที่เทียบเท่ากับค่าของสีในระบบ  RGB

                2.  การกำหนดค่าของสีด้วยเลขจำนวนเต็มของระบบ  RGB  ที่ใช้กันทั่วไป

ทั้งสองมีรูปแบบการใช้ดังนี้

                Color c = new Color(R,G,B);

                //ตัวอย่าง  สำหรับระบบทศนิยมแสดงสีเขียวสว่าง

                Color c1 = new  Color (0.807F,1F,0F);

                //  ตัวอย่างสำหรับระบบ  จำนวนเต็ม  RGB  แสดงสีน้ำตาลครีม

                Color  c2 = new  Color (255,204,102);

จาวากำหนดสีบางสีที่ใช้บ่อย ๆ เอาไว้ให้แล้วในคลาส  Color  โดยการเรียกใช้จะต้องอ้างอิงถึงชื่อคลาส  Color  ด้วยทุกครั้งดังนี้

                Color.lightGray

การนำสีไปใช้กับออบเจ็กต์ใดๆ ที่กำลังจะวาดนั้นทำได้โดยการใช้เมธอด  setcolor()  ซึ่งจะตอ้งถูกทำก่อนการวาดทุกครั้ง  มีรูปแบบการใช้ดังนี้

                Setcolor(Object สี );

 

กระบวนการหลัก ๆ ของการสร้าง Applet

หัวข้อพิเศษไอที, Java Applet No Comments »

Java  Applet  นั้นเป็นออบเจ็กต์ที่สร้างมาจากคลาส  java.applet.Applet  หรือเรียกได้ว่าเป็นคลาสย่อยของมันอีกที  โดยตัวคลาส  Applet  เองนั้นแท้ที่จริงมีหน้าที่เพียงแค่ใช้ในการสร้างคลาสย่อย  หรือออบเจ็กต์ขึ้นมาไม่ได้ทำอะไรมากกว่านั้น  ดีงนืนมันจงเป็นเพียงแค่พื้นที่ว่าง ๆ บนหน้าจอที่ไม่มีการตอบสนองใด ๆ

การจะสร้าง  Applet  ที่มีประโยชน์ขึ้นมานั้น  โปรแกรมเมอร์จะตอ้งเพิ่มเติมคลาสย่อยซึ่งขยายมาจากคลาส  Applet  มีรูปแบบคือ

Public  class  YourApplet  extends  java.applet.Appplet{

                //ส่วนของโปรแกรม  การทำงาน  Applet

}

หลังจากที่เพิ่มคลาสย่อยเข้าไปในคลาสที่สร้างจาก  Applet  แล้ว  เราจะได้เมธอดต่าง ๆ ที่ถูกกำหนดไว้ในคลาส  Applet  ตามกฎการถ่ายทอดโดยจะมีบางเมธอดที่เราสามารถใส่คำสั่งต่าง ๆ ลงไป  ขณะที่บางเมธอดเราก็ไม่ได้ทำอะไรกับมันเลย

เนื่องจาก  Applet  นั้นไม่ได้เป็นโปรแกรมชนิด  stand-alone  หรือประมวลผลได้อิสระ  เพราะฉะนั้นจึงมีความแตกต่างบ้าง  แต่ก็ยังคงใช้หลักการเดียวกันกับ  Application

Applet  นั้นมีเมธอดอยู่หลายเมธอดที่ทำหน้าที่เหมือนกับ  main()  ซึ่งเมธอดที่ว่า  ได้แก่

เมธอด  paint()
เป็นหนึ่งในเมธอดที่ถูกกำหนดในคลาส  Applet  แต่ไม่ได้ทำอะไรเลย  มีไว้สำหรับเมื่อต้องการให้  Applet  แสดงอะไรขึ้นมาบนหน้าจอไม่ว่าจะเป็นข้อความ  รูปภาพ  รูปทรงต่าง ๆ หรืออะไรก็แล้วแต่  โดยสามารถเกดขึ้นกี่ครั้งก็ได้ตลอดช่วงชีวิตของ  Applet (applet  life  cycle)

เมธอด  paint()  นี้จะต้องถูกเขียนใหม่ลงไปที่ส่วนของคลาสย่อย Applet  ที่สร้างขึ้นเพื่อให้มีอะไรแสดงไปที่หน้าจอ  โดยมีรูปแบบดังนี้

Public  void  pain(Graphics g) {

                //โปรแกรม  สิ่งที่จะวาดลงไปบน  Applet

}

พารามิเตอร์  “g”  ที่มีชนิดเป็นคลาส  Graphics  จะถูกกำหนดโดยระบบที่เรียกใช้  Applet  ซึ่งสำหรับการวาดรูป  หรือทำกราฟิกต่าง ๆ บนจาวาส่วนใหญ่  จะถูกทำโดยคลาส  Graphics  กล่าวได้อีกนัยหนึ่งก็คือ  เมธอด  paint()  ที่กำหนดใน  Applet  นี้  ไม่ได้ทำการวาดรูปใดๆ  บน  Applet  เลย  ไม่ว่าจะเป็นกล่องข้อความ  หรือรูปทรงตาง ๆ แต่ออบเจ็กต์เหล่านั้นทำการวาดตัวมันเองด้วยการใช้เมธอด  paint()  ของมันเองต่างหาก

เมธอด  init()
ปกติแล้วในการสร้างออบเจ็กต์ทั่วไป  Constructor  จะรับผิดชอบในการกำหนดค่าเริ่มต้นหรือทำการ  Initialize  ให้กับออบเจ็กต์นั้น ๆ เสมอ  แต่กับ  Applet  แล้ว  สิ่งที่จะทำการ   Initialize  Applet  กลับไม่ใช่  Constructor  แต่เป็นเมธอดที่ชื่อว่า  init()  เป็นเมธอดที่จะถูกอ่านโดยระบบเมื่อ  Applet  ใดๆ  ถูกสร้างขึ้น  เช่น  ต้องการกำหนดสีที่พื้นหลัง  ชนิดของฟอนต์ที่ถูกใช้ข้อความในขณะที่  Applet  กำลัง  paint  หรือการสร้างปุ่มขึ้นมาบน  Applet  โดยมีรูปแบบการใช้ดังนี้

Public  void  init()  {

                // ส่วนของโปรแกรมที่ถูกทำเมื่อ  Applet  ถูก load ในตอนแรก

}

เมธอด  start()
ปกติแล้ว  Applet  จะเริ่มทำงานหลังจากที่การกำหนดค่าเริ่มต้น  แต่การเริ่มของ  Applet  นั้นสามารถเกิดขึ้นำด้อีกในกรณีที่ก่อนหน้านี้มันถูกบังคับให้หยุด  หรือผู้ใช้กดลิงค์ทำให้หน้าจอปัจจุบันถูกเปลี่ยนจากการรัน  Applet  ไปเป็นอย่างอื่น  นั่นหมายความว่า  เมื่อผู้ใช้กลับมาหน้า  Applet  อีกครั้ง  มันก็จะเริ่มทำงานใหม่อีกครั้งหรือถูก  start  ขึ้นใหม่นั่นเอง (แสดงให้เห็นว่าการเริ่ม  Applet    สามารถเกอดขันได้มากกว่าหนึ่งครั้งในช่วงชีวิตของ  Applet  )  การเขียนทับเมธอด  start()  ทำได้ดังนี้ ปกติแล้ว  Applet  จะเริ่มทำงานหลังจากที่การกำหนดค่าเริ่มต้น  แต่การเริ่มของ  Applet  นั้นสามารถเกิดขึ้นำด้อีกในกรณีที่ก่อนหน้านี้มันถูกบังคับให้หยุด  หรือผู้ใช้กดลิงค์ทำให้หน้าจอปัจจุบันถูกเปลี่ยนจากการรัน  Applet  ไปเป็นอย่างอื่น  นั่นหมายความว่า  เมื่อผู้ใช้กลับมาหน้า  Applet  อีกครั้ง  มันก็จะเริ่มทำงานใหม่อีกครั้งหรือถูก  start  ขึ้นใหม่นั่นเอง (แสดงให้เห็นว่าการเริ่ม  Applet    สามารถเกอดขันได้มากกว่าหนึ่งครั้งในช่วงชีวิตของ  Applet  )  การเขียนทับเมธอด  start()  ทำได้ดังนี้Public  class  YourApplet  extends  Applet   {

                Public  void  start() {

                }

}

กระบวนการที่จะใส่ไว้ที่เมธอด  start()  นี้อาจจะเป็นการส่งข้อความบางอย่าง  เพื่อบอกว่า  Applet    นี้ยังคงทำงานอยู่  ถ้าไม่จำเป็นต้องทำก็อาจจะไม่ต้องเขียนลงไปก็ได้ 

เมธอด  stop()
การหยุดของ  Applet  หมายถึง  การที่ผู้ใช้ออกจากหน้าจอปัจจุบันที่กำลังรัน  Applet    อยู่นั้น  หรือการที่  Applet   อยู่ตัวมันเองด้วยการเรียกเมธอด  stop() โดยตรงมีรูปแบบการใช้ดังนี้

Public  class  YourApplet  extends  Applet   {

                Public  void  stop() {

                }

}

เมธอด  destroy()
เป็นการบอกให้  Applet   ทำการล้างหน่วยความจำต่าง ๆ ให้เป็นเหมือนก่อนที่มันจะใช้เมื่อทากรปิดบราวเซอร์หรือใช้ทำลายเธรดต่าง ๆ ที่ยังคงทำงานค้างอยู่  ซึ่งโดยทั่วไปการเขียนโปรแกรมในส่วนนี้อาจจะไม่มีความจำเป็นมาก  นอกเสียจากจะต้องการปลดปล่อยทรัพยากรที่มีจำกัด

Public  class  YourApplet  extends  Applet   {

                Public  void  destroy () {

                }

}


   Designed By:  SadhWeb Directory  &  WP Theme

Sponsored By:  Affiliate Marketing Blog  &  Paid Directory