// create mouse wheel listener and implement follow below...
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if ((e.getModifiers() & java.awt.event.InputEvent.SHIFT_MASK)
== java.awt.event.InputEvent.SHIFT_MASK) {
if (scrollPane.getHorizontalScrollBar().isShowing()) {
JViewport viewport = scrollPane.getViewport();
Point viewPosition = viewport.getViewPosition();
if (e.getWheelRotation() < 0) { // wheel up -
viewPosition.x -= scrollPane.getHorizontalScrollBar()
.getBlockIncrement() * 15; // adjust up to you!
} else { // wheel down +
viewPosition.x += scrollPane.getHorizontalScrollBar()
.getBlockIncrement() * 15; // adjust up to you!
}
// X axis only
if (viewPosition.x > viewport.getView().getWidth() - viewport.getWidth()) {
viewPosition.x = viewport.getView().getWidth() - viewport.getWidth();
}
if (viewPosition.x < 0) {
viewPosition.x = 0;
}
viewport.setViewPosition(viewPosition);
}
} else { // dispatchEvent of scrollpane
scrollPane.dispatchEvent(e); // scroll vertical normaly...
}
}
การเรียนการสอนตามหลักวิชาการมีความจำเป็นอยู่ แต่การเรียนรู้จักตัวเอง เป็นความจำเป็นอย่างยิ่ง รู้จักตัวเองต่างหากที่เรียกว่า "รู้จริง"
Showing posts with label java. Show all posts
Showing posts with label java. Show all posts
05 January 2011
JAVA : How to scroll the horizontal scrollbar by (shift + mouse wheel)
วิธี scroll horizontal scrollbar ด้วยการ กด shift + mouse wheel
09 September 2010
วิธีสร้าง Batch file สำหรับรัน java
วิธีทำ jar file, วิธี export eclipse project java เพื่อทำ jar
ก่อนอื่นนะครับ ต้องไป export project java ให้ได้เป็น .jar มาก่อนตามนี้
ก่อนอื่นนะครับ ต้องไป export project java ให้ได้เป็น .jar มาก่อนตามนี้
- file > export... > java > jar file จากนั้น ให้เลือกตัว src หรือ folder อื่นๆที่ต้องการด้วย และทางด้านขวาไม่ต้องเลือก ต่อมาก็เลือกที่เก็บไฟล์ jar ที่
select export destination เสร็จแล้ว Next > ไป 2 ครั้ง - ทำ batch file สำหรับขั้นตอนนี้ถ้ามี library ของคุณเองด้วยก็นำมาทำด้วยนะครับ
ก่อนอื่นสร้าง folder ไว้ 1 folder เอาไฟล์ jar ที่ export มาใส่ไว้
สร้าง folder ข้างในชื่อ lib ให้เอา library ของคุณมาใส่ไว้ในนี้
สร้างไฟล์ text ขึ้นมาแก้ไขไปดังนี้
set CLASSPATH=.;%CLASSPATH% java -cp "lib\ojdbc14.jar;project.jar" MainFrame pause
ojdbc14.jar เป็น library ของผม ส่วน project.jar เป็นไฟล์ที่ได้จากการ export
เสร็จแล้วจึง save เป็น "ชื่อไฟล์.bat" ห้ามมี enter ว่าง จากนั้นลองรันดูเลยครับ
อย่าลืม set path java(ตัว jvm path) นะครับ ดูได้ที่นี่
08 August 2010
[java]วิธีเปลี่ยน Icon (how to change icon JFrame,JDialog,JInternalFrame)
วันนี้จะนำเสนอการเปลี่ยน icon ที่ทำเผินๆแล้วเหมือนจะเปลี่ยนได้โดยง่าย ของอย่างนี้มีทริปนิดนึงครับ ทริปที่ว่านี้คือใช้ Toolkit ของจาวา ครับ
การ set Icon ของ JFrame
การ set Icon ของ JDialog
การ set Icon ของ InternalFrame
การ set Icon ของ JFrame
import java.awt.Toolkit;
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("icon/frame.gif"));
การ set Icon ของ JDialog
import java.awt.Toolkit;
dialog.setIconImage(Toolkit.getDefaultToolkit().getImage("icon/table.gif"));
การ set Icon ของ InternalFrame
//อันนี้ ธรรมดาเลยครับ
internalframe.setFrameIcon(new ImageIcon("icon/table.gif"));
02 August 2010
[java] การใช้ Labeled continue ใน for loop
Java ยอมให้มีการใช้ label ในการหยุดและเริ่มการประมวลผลใหม่ ซึ่งโปรแกรมเมอร์หลาย ๆ ท่านไม่
ค่อยจะเห็นด้วยกับการใช้การประมวลผลในลักษณะนี้เท่าใดนัก เรามาดูตัวอย่างกัน
เราได้ดัดแปลงโปรแกรม Continue.java ของเราสำหรับการแสดงการใช้ labeled continue ในโปรแกรม LabeledContinue.java เรากำหนดให้มี identifier ที่มีชื่อว่า label อยู่ก่อนหน้า for loop ด้านนอกของเรา ซึ่งต้องมีเครื่องหมาย ':' ตามหลังเสมอ และในการใช้ continue ใน for loop ด้านในนั้นเราจะต้องมี identifier ที่เราใช้ตามหลัง continue เสมอ การประมวลด้วย labeled continue ก็ไม่ยากนักที่จะทำความเข้าใจ เมื่อค่าของ column มากกว่าค่าของ row การทำงานใน for loop ด้านในก็สิ้นสุดลงและไปเริ่มต้นใหม่ที่ for loop ด้านนอก เพราะนั่นเป็นที่ที่มี label อยู่ การทำงานแบบนี้ก็เหมือนกับการกระโดดไปยังตำแหน่งที่เราต้องการจะไปนั่นเอง ทั้งนี้ก็ต้องขึ้นอยู่กับเงื่อนไขที่เราได้ตั้งไว้
ค่อยจะเห็นด้วยกับการใช้การประมวลผลในลักษณะนี้เท่าใดนัก เรามาดูตัวอย่างกัน
/* LabledContinue.java */
import java.io.*;
class LabeledContinue {
public static void main(String[] args) {
label: for(int row = 1; row <= 10; row++) {
System.out.println();
for(int column = 1; column <= 10; column++) {
if(column > row)
continue label; //goto label
System.out.print("*");
}
}
}
}
เราได้ดัดแปลงโปรแกรม Continue.java ของเราสำหรับการแสดงการใช้ labeled continue ในโปรแกรม LabeledContinue.java เรากำหนดให้มี identifier ที่มีชื่อว่า label อยู่ก่อนหน้า for loop ด้านนอกของเรา ซึ่งต้องมีเครื่องหมาย ':' ตามหลังเสมอ และในการใช้ continue ใน for loop ด้านในนั้นเราจะต้องมี identifier ที่เราใช้ตามหลัง continue เสมอ การประมวลด้วย labeled continue ก็ไม่ยากนักที่จะทำความเข้าใจ เมื่อค่าของ column มากกว่าค่าของ row การทำงานใน for loop ด้านในก็สิ้นสุดลงและไปเริ่มต้นใหม่ที่ for loop ด้านนอก เพราะนั่นเป็นที่ที่มี label อยู่ การทำงานแบบนี้ก็เหมือนกับการกระโดดไปยังตำแหน่งที่เราต้องการจะไปนั่นเอง ทั้งนี้ก็ต้องขึ้นอยู่กับเงื่อนไขที่เราได้ตั้งไว้
26 June 2010
Java Look And Feel(SystemLookAndFeel,theme)
สวัสที่ท่านผู้อ่านนะครับ พอดีผมเขียนโปรแกรมแล้วประสบปัญหาการปรับแต่งหน้าตาใน Java App SE
แล้วหาข้อมูลยากมากๆ ก็เลยคิดว่านำมาแบ่งปันให้จะเป็นการดี
แล้วหาข้อมูลยากมากๆ ก็เลยคิดว่านำมาแบ่งปันให้จะเป็นการดี
- ปกติแล้วเวลาที่เราเขียนโปรแกรมหน้าตาของมัน จะเรียกใช้มาจากตัว Library ของ java
จะเป็นประมานนี้...
แล้วจะเปลี่ยนหน้าตาโปรแกรมให้เหมือนกับ หน้าตาโปรแกรมที่เราใช้ยังไง เช่น เรา
ใช้window 7 หรือกับ OS อื่นๆ โดยให้เปลี่ยน Theme ไปตาม OS นั้นๆ
ก็ให้เพิ่มคำสั่งตามนี้เลย...
try { //อันนี้เรียกใช้จาก Library ของ java โดย Default //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); //อันนี้เป็นของแถมมากับเจ้า Library ของ java เช่นกัน //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); //อันนี้เป็น theme ของระบบ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { }
ให้ใส่ก่อนการ สร้าง Frame นะครับพี่น้อง
03 April 2010
JAVA-Inheritance
วันนี้ได้มาซ้อมทำโปรเจคที่มหาวิทยาลัย ได้ศึกษาเรื่องการสืบทอด...
ประโยนช์ของการสืบทอด(extends)
ประโยนช์ของการสืบทอด(extends)
- แก้ปัญหาการเขียนโปรแกรมซ้ำซ้อนกันได้
- เมธอดหรือแอตทริบิวต์ที่คลาสต่างๆ มีร่วมกันจะถูกนำไปใส่ในคลาสแม่
- คลาสลูกจะสืบทอดเมธอดและแอตทริบิวต์คลาสแม่โดยอัตโนมัติ
ประโชน์ของการทำ polymorphism
- poly แปลว่าหลายหรือมาก
- morphism นั้นมาจากคำว่า morph ซึ่งแปลว่ารูปร่าง
- รวมกันแล้วหมายถึงความสามารถที่สิ่งหนึ่งจะมีได้หลายรูปร่าง ซึ่งเมื่อใช้คำนี้กับการโปรแกรมเชิงวัตถุ ก็จะหมายถึงการที่คำสั่งแบบเดียวกันสามารถถูกแปลได้หลายแบบ
- พอลิมอร์ฟิซึมสนับสนุน การนำกลับมาใช้ใหม่ (reuse)
- ถ้าเราได้เขียนโปรแกรมที่ใช้งานได้กับสัตว์ โปรแกรมของเราย่อมใช้ได้กับแมว ปลา และลิงนอกจากนั้นถ้ามีคนสร้างคลาสอีกัวน่าขึ้นมาใหม่ โปรแกรมที่เราเขียนก็สามารถใช้ได้กับคลาสอีกัวน่าเช่นกัน
27 March 2010
JAVA-Drag And Drop
วันนี้ได้ไปซ้อมมือการทำโปรเจคที่มหาลัย อาจารย์ได้มอบหมายให้เขียน java application ที่สามารถสร้าง และเคลื่อนย้าย panel ได้
การฝึกปรือครั้งนี้ใช้โปรแกรม netbean IDE ในการเรียน หลังจากติดตั้งและสร้างโปรเจคเสร็จก็ได้ลงมือ กว่าจะทำได้ก็ต้องถามเจ้าพ่อ google อยู่นาน พอได้แนวทางมาก็เอามาเขียนของเราเอง วันนี้ผมก็พอจะเห็นภาพคร่าวๆของโปรเจคของผมแล้ว
นี่เป็นแนวทาง Drag And Drop ครับ >>http://www.narisa.com/forums/index.php?showtopic=20813
การฝึกปรือครั้งนี้ใช้โปรแกรม netbean IDE ในการเรียน หลังจากติดตั้งและสร้างโปรเจคเสร็จก็ได้ลงมือ กว่าจะทำได้ก็ต้องถามเจ้าพ่อ google อยู่นาน พอได้แนวทางมาก็เอามาเขียนของเราเอง วันนี้ผมก็พอจะเห็นภาพคร่าวๆของโปรเจคของผมแล้ว
นี่เป็นแนวทาง Drag And Drop ครับ >>http://www.narisa.com/forums/index.php?showtopic=20813
Subscribe to:
Posts (Atom)

