โปรแกรมภาษาคอมพิวเตอร์ชั้นสูง [รหัสวิชา 4123305]

เรียนเสนอ อาจารย์ แสงเพ็ชร พระฉาย

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

รวบรวมโดย นายวิบูลย์ ชาญจำลอง 441244135

กศ.ปช.5 Computer หมู่ที่ 2

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

เรื่อง การเขียนโปรแกรมภาษาจาวาในรูปแบบ GUI นำเสนอโดยผ่านทาง website


GUI

GUI "Graphical User Interface" เป็นการนำเอา graphic มาช่วยในการออกแบบจอภาพให้สวยงาม และสื่อสารกับ user ได้ง่ายขึ้น เช่น การแสดงด้วย Icon รูปภาพ และอื่นๆ

AWT หรือ Abstract Windowing Toolkit เป็นเครื่องมือพื้นฐานในการเขียนโปรแกรมด้วย GUI ใน Java โดยในการเขียนโปรแกรมด้วย GUI นั้น จะต้องประกอบไปด้วย

1.) AWT Components เป็น object ที่ Java ได้สร้างมาใช้งานได้เลย ประกอบด้วย class ต่อไปนี้ Component, Container, Button Canvas, CheckBox, Choice, Dialog, Frame, Label, List, Menu, MenuBar, MenuItem, Panel, Scroolbar, TextArea, TextComponent และ TextField

2.) AWT Containers เป็น Component อย่างหนึ่ง ที่สามารถนำ Conponent อื่นๆ มาใส่เอาไว้ได้ [ใช้จัดเก็บComponents] ประกอบด้วย class ดังนี้ Applet, Container, Dialog, Frame, Panel, ScrollPane และ Window

3.) Layout Managers ใช้สำหรับจัดแสดง Container ออกทางจอภาพ [ใช้จัดเรียง Container] ประกอบด้วย class ดังนี้ BorderLayout, FlowLayout, CardLayout, GridLayout และ GridBagLayout

ตัวอย่างการเขียนโปรแกรมภาษาจาวาในรูปแบบ GUI (source code) พร้อมคำอธิบาย

โปรแกรมการคำนวณพื้นที่วงกลม


import java.applet.Applet;//.... เรียกใช้ class ไลบรารี Applet ใน Package ของ java.applet
import java.awt.*; //.... เรียกใช้เครื่องมือพื้นฐาน awt ซึ่ง Java ได้สร้างไว้สำหรับใช้งานในการเขียนโปรแกรมด้วย Graphics ทั้งหมด
import java.awt.event.*; //.... เรียกใช้สถานะการณ์ ต่างๆ

public class TestTextField1 extends Applet implements ActionListener { //....ประกาศ public เพื่อให้สับคลาสเรียกใช้เวฟเบาวร์เซอร์ได้
//.....extend เพื่อระบุว่าคลาสที่กำลังสร้างเป็นสับคลาสของคลาสที่อยู่ทางขวามือซึ่งจะคอยรอรับสถานะการณ์อยู่
String t1; //..... กำหนดค่าตัวแปร t1 ให้เป็นข้อความ(String)
double area=0;//....กำหนดค่าตัวแปร area เป็น double (ทศนิยม) เริ่มต้นค่าที่ 0
TextField text1 = new TextField(10);// ....อินสแตนซ์ TextField(บรรจุได้10ตัว) แล้วเก็บค่าไว้ใน text1
TextField text2 = new TextField(15);// ....อินสแตนซ์ TextField(บรรจุได้15ตัว) แล้วเก็บค่าไว้ใน text2
Label lb1 = new Label("Please Enter the radius of the circle");// ....อินสแตนซ์ Label(ด้วยข้อความในเครื่องหมายคำพูด) แล้วเก็บค่าไว้ใน lb1
Label lb2 = new Label("Area of the circle is ");// ....อินสแตนซ์ Label(ด้วยข้อความในเครื่องหมายคำพูด) แล้วเก็บค่าไว้ใน lb2

public void init() { //....เป็น method สร้างค่าเริ่มต้น (เหมือนกับ public class main)
add(lb1); //....วางObject lb1 บน from
add(text1);//....วางObject text1 บน from
text1.addActionListener(this);//....ให้ form นี้ดัก Even ของ text1 เอาไปให้อินสแตนซ์ this
add(lb2);//....วางObject lb2 บน from
add(text2);//....วางObject text2 บน from
text2.setEditable(false);//...ห้ามแก้ไข text2
}

public void actionPerformed(ActionEvent e) { //...สร้าง Method ในการดักจับEven ขอ text1
t1 = text1.getText().trim();//...ให้อ่านข้อความจาก text1 มาไว้ใน t1
Double x = new Double(t1);//...เปลี่ยนข้อความใน t1 เป็นตัวเลขแล้วเก็บไว้ใน x มีค่าเป็น Double
double r = x.doubleValue();//...อ่านค่าของ x ออกมาเก็บไว้ในตัวแปร r
double area = Math.PI*r*r; //...ให้ค่าไพร์คูณ r คูณ r เก็บไว้ในตัวแปร area
text2.setText(" "+area); //... เอาค่าของ area มาแสดงใน text2
}
}

+ + + + + + + + + + + + + + + + + +