Java Bean คือการนำคอมโพเนนต์ต่างๆที่ถูกสร้างเอาไว้แล้วด้วยภาษาจาวาเอง กลับมาใช้หรือประยุกต์เข้ากับโปรแกรมอื่นๆ ที่สร้างขึ้นมาใหม่ โดยที่สามารถสร้างหรือเพิ่มคอมโพเนนต์เหล่านั้นเข้าไปได้ด้วย (Buider Tool) หรือเขียนโค้ดเองเหมือนกับการเขียนโปรแกรมจาวาปกติ
ต่อไปจะเป็นการติดตั้งตัว BeanBox นะครับ
- เริ่มจากเข้าไปที่ http://sites.google.com/site/kmitlcomponentthai/home/relataed-links
- จากนั้นให้ทำการ Download ทั้งหมด 2 ตัวนะครับคือ BDK และ nmake
- เมื่อทำการ Download เสร็จแล้วให้ทำการแตกไฟล์ BDK ออก
- สำหรับในกรณีที่เครื่องที่ติดตั้งมี JDK 1.4 ขึ้นไปนะครับให้ทำการแก้ไขไฟล์บางส่วนดังนี้นะครับ
ให้เข้าไปใน beans\demo\sunw\demo\buttons จากนั้นให้ทำการแก้ไขไฟล์ที่มีชื่อว่า ExplicitButtonBeanInfo.java
โดยการแก้ไขให้เลื่อนลงไปประมานบรรทัดที่ 44 นะครับ โดยให้แก้ไขดังนี้นะครับ
จาก code เดิมคือ
EventSetDescriptor push = new EventSetDescriptor(beanClass,
"actionPerformed",
java.awt.event.ActionListener.class,
"actionPerformed");
ให้ทำการแก้ไขใหม่เป็น
EventSetDescriptor push = new EventSetDescriptor(beanClass,
"action",
java.awt.event.ActionListener.class,
"actionPerformed");
- เมื่อทำการแก้ไขเสร็จแล้วให้เราทำการแตกไฟล์ nmake15.exe ไปไว้ที่ beans\demo เมื่อทำการแตกไฟล์แล้วให้ทำการคลิกที่ nmake15.exe หลังจากนั้นให้ทำการคลิกไฟล์ที่ชื่อว่า nmake.exe อีกที ก็เป็นอันว่าจบการติดตั้ง beanbox
โดยตัวอย่างที่เราจะลองสร้างนี้คือโปรแกรมที่เราเรียกว่า Couter bean ซึ่งเจ้าตัวโปรแกรมนี้เนี่ยมีหลักการทำงานคือ เมื่อผู้ใช้กดปุ่ม start counter จะทำการเพิ่มค่าทีละ 1 ทุก 1 วินาที และเมื่อผู้ใช้กดปุ่ม Stop การทำงานจะหยุด และถ้าผู้ใช้กดปุ่ม reset ค่า counter จะกลับมาเป็น 0 โดย code ของตัวโปรแกรมมีดังนี้ครับ
package counter;
import java.awt.*;
public class Counter extends Canvas {
private final static int XPAD = 10;
private final static int YPAD = 10;
private int count;
private boolean operate;
public Counter() {
count = 0;
operate = true;
}
public void reset() {
count = 0;
repaint();
}
public void start( ) {
operate = true;
}
public void stop() {
operate = false;
}
public synchronized void increment() {
if(operate) {
++count;
adjustSize();
repaint();
}
}
public void setFont(Font font) {
super.setFont(font);
adjustSize();
}
public Dimension getPreferredSize() {
Graphics g = getGraphics();
FontMetrics fm = g.getFontMetrics();
int w = fm.stringWidth("" + count) + 2 * XPAD;
int h = fm.getHeight() + 2 * YPAD;
return new Dimension(w, h);
}
private void adjustSize() {
Dimension d = getPreferredSize();
setSize(d.width, d.height);
Component parent = getParent();
if(parent != null) {
parent.invalidate();
parent.doLayout();
}
}
public void paint(Graphics g) {
Dimension d = getSize();
FontMetrics fm = g.getFontMetrics();
int x = (d.width - fm.stringWidth("" + count))/2;
int y = (d.height + fm.getMaxAscent() -
fm.getMaxDescent())/2;
g.drawString("" + count, x, y);
g.drawRect(0, 0, d.width - 1, d.height - 1);
}
}
- จากนั้นให้เราทำการ copy code ใส่ลง notepad แล้วทำการ save file เป็นชื่อ Counter.java
- ให้เปิด Command Prompt แล้ว Compile โปรแกรมโดยใช้คำสั่ง javac -d. Counter.java
- จากนั้นให้ทำการสร้าง file Manifest โดย code ของไฟล์คือ ตั้งชื่อ file ว่า manifest.mf นะครับ
Main-Class: counter.Counter
Name: counter/Counter.class
Java-Bean: True
ในการพิมพ์ลงในไฟล์ ต้องเว้นช่องว่างในบรรทัดสุดท้ายไว้ด้วย 1 บรรทัดนะครัย มิเช่นนั้นแล้วจะทำให้ compile ไม่ผ่าน
เมื่อทำการ save ไฟล์แล้วนำไปไว้ใน Directory เดียวกันกับ file Counter.java นะครับ
- จากนั้นให้เราเปิด Command Prompt แล้วทำการสร้างไฟล์ jar โดยการพิมพ์คำสังต่อไปนี้ครับ jar -cfm Counter.jar manifest.mf .\counter\*.* จากนั้นเราจะได้ file jar (ที่ต้องมี\counter\*.* เพื่อที่จะไปหา file Counter.class ใน folder counter ครับ)
- เมื่อได้ file jar แล้วให้เราทำการเปิดโปรแรกม beanbox ขึ้นมาแล้วทำการเปิดไฟล์ jar ขึ้นมาโดนเลือก File > Load jar แล้วเลือกไฟล์ Counter.jar ขึ้นมา
- เลือก ExplicitButton ใช้ในการสร้างปุ่ม โดยจะทำการสร้างทั้งหมด 3 ปุ่มคือ Start Stop และ Reset โดยเราสามารถที่จะทำการเปลี่ยนชื่อของปุ่มได้โดยการพิมพ์ที่ label
- จากนั้นทำการเพิ่มการทำงานให้ในแต่ละปุ่มโดยการคลิกที่ปุ่มที่ต้องการจะเพิ่มการทำงาน จากนั้นเลือก Edit > Event > button push > actionPerformed
- จากนั้นให้เลือกใรส่วนของ EventTargetDailog ให้เลือกเป็น start ในปุ่ม start , stop ในปุ่ม stop และ reset ในปุ่ม reset
- เมื่อได้แล้วให้เราทำการโยงเส้นไปยังวัตถุที่เราจะให้ทำงานด้วย ในที่นี้คือให้เราโยงเส้นแดงๆไปยังส่วนของ counter
- จากนั้นให้ทำการคลิกในส่วนของ TickTok และทำการสร้างลงบนพื้นที่ตรงกลางจากนั้นทำการเพิ่มการทำงานโดยการคลิกที่ Edit > Event > propertyChange > propertyChange




































