วันจันทร์ที่ 24 กุมภาพันธ์ พ.ศ. 2557

Apache POI autoSizeColumn()

Apache POI autoSizeColumn()

How to set auto column in Java Apache POI

Code Example

HSSFSheet sheet = wb.createSheet();
int column = 0;
sheet.autoSizeColumn(column);


column is a number of column eg 0, 1, 2, 3, ...

yengo หรือ buzzcity

วันศุกร์ที่ 21 กุมภาพันธ์ พ.ศ. 2557

Java GUI การสร้างปุ่มหลายปุ่มแล้วกดปุ่ม มี event หลาย ๆ แบบ

Java GUI การสร้างปุ่มหลายปุ่มแล้วกดปุ่ม มี event หลาย ๆ แบบ

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

ตัวอย่างโค้ด

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class JavaCodeExam extends JFrame implements ActionListener {

private JFrame frame;

public static void main(String[] args) throws Exception {
new JavaCodeExam();
}

public JavaCodeExam() {
this.frame = new JFrame();
this.frame.setVisible(true);

this.frame.setTitle("Frame By Java Code Exam");
this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

JButton btnAlert = new JButton("Alert");
btnAlert.addActionListener(this);
panel.add(btnAlert);

JButton btnClose = new JButton("Close Windows");
btnClose.addActionListener(this);
panel.add(btnClose);

this.frame.add(panel);
this.frame.pack();
this.frame.setSize(500, 200);
this.frame.setLocation(10, 10);
}

@Override
public void actionPerformed(ActionEvent e) {
if ("Alert".equals(e.getActionCommand())) {
JOptionPane jpn = new JOptionPane();
jpn.showMessageDialog(this.frame, "Java Code Exam");
} else {
// remove the previous JFrame
this.frame.setVisible(false);
this.frame.dispose();
}

}
}

ตัวอย่างนี้คล้าย ๆ กับตัวอย่าง http://javacodeexam.blogspot.com/2014/02/java-gui-frame.html
ซึ่งตัวอย่างนี้จะมีการเพิ่ม ปุ่มเข้ามาอีกปุ่มหนึ่ง เป็นปุ่มสำหรับการ Alert

ใน method actionPerformed จะทำการเช็คว่าเป็น event ของปุ่มไหน ถ้าเป็น event ของปุ่มแรก ก็ทำการ Alert โดยใช้ JOptionPane ส่วนปุ่มที่ 2 ก็ทำการปิดโปรแกรม

ผลลัพธ์ที่ได้


yengo หรือ buzzcity

Java GUI การสร้างปุ่มปิดโปรแกรม เมื่อคลิกแล้วให้ Frame ปิด

Java GUI การสร้างปุ่มปิดโปรแกรม เมื่อคลิกแล้วให้ Frame ปิด

ตัวอย่างโปรแกรมนี้ เรามาสร้างปุ่ม แล้วเมื่อเราคลิกปุ่มที่สร้างแล้ว จะทำการปิด frame

ตัวอย่างโค้ด

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaCodeExam extends JFrame implements ActionListener {

private JFrame frame;

public static void main(String[] args) throws Exception {
new JavaCodeExam();
}

public JavaCodeExam() {
this.frame = new JFrame();
this.frame.setVisible(true);

this.frame.setTitle("Frame By Java Code Exam");
this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

JButton btnClose = new JButton("Close Windows");

btnClose.addActionListener(this);
panel.add(btnClose);

this.frame.add(panel);
this.frame.pack();
this.frame.setSize(500, 200);
this.frame.setLocation(10, 10);
}

@Override
public void actionPerformed(ActionEvent e) {
// remove the previous JFrame
this.frame.setVisible(false);
this.frame.dispose();
}
}

ตัวอย่างนี้สร้างปุ่มปิดโปรแกรม ซึ่งเมื่อคลิกแล้วให้ Frame ปิด

ก่อนอื่น Class ที่เราสร้างขึ้นจะ  extends JFrame และ implements ActionListener

จากนั้นจะสร้างตัวแปร frame ที่เป็น JFrame ไว้เป็นตัวแปรชนิด Object

ใน constructor ได้ทำการสร้าง Object JFrame ไว้ในตัวแปร frame ที่เราได้สร้างไว้ แล้วก็ทำการเซตค่าต่าง ๆ ให้กับ frame

จากนั้นให้เราสร้างปุ่มที่ต้องการที่เมื่อกดแล้วจะให้ปิด frame

ปุ่มที่สร้างขึ้นจะเรียกใช้ addActionListener(this); ส่ง ActionListener เข้าไป ซึ่ง ActionListener ที่ส่งเข้าไปนี้ก็คือตัวของมันเอง this เพราะเราได้ implements ActionListener ไว้แล้ว

Class ที่เราได้ทำการ implements ActionListener นั้น จะมี public abstract void actionPerformed(java.awt.event.ActionEvent arg0); ดังนั้น เราจะต้อง Override method actionPerformed

ใน method actionPerformed เราได้ทำการ this.frame.setVisible(false); และ this.frame.dispose(); เพื่อปิด frame

ผลลัพธ์ที่ได้


yengo หรือ buzzcity

Java GUI การสร้าง Combo Boxes โดยใช้ JComboBox (Using Combo Box)

Java GUI การสร้าง Combo Boxes โดยใช้ JComboBox (Using Combo Box)

ตัวอย่างโค้ดนี้เรามาดูวิธีสร้าง Combo Boxes โดยใช้ JComboBox กันครับ 

ตัวอย่างโค้ด

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaCodeExam {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setTitle("Frame By Java Code Exam");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
// panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig"};
JComboBox<String> petList = new JComboBox<String>(petStrings);
panel.add(petList);
   
frame.add(panel);
frame.pack();
frame.setSize(500, 200);
frame.setLocation(10, 10);
}
}

จากตัวอย่างข้างต้น เราได้สร้าง ComboBox โดยใช้ JComboBox ซึ่ง ComboBox นี้มีค่าเป็น String ซึ่งในการสร้างจะรับพารามิเตอร์เป็น Array ของ String ที่ต้องการแสดง

จากนั้นเราก็เอา ComboBox ไปเพิ่มลงใน panel 

จากนั้นเราก็เอา panel ที่มี ComboBox ไปเพิ่มลงใน frame

ผลลัพธ์ที่ได้


yengo หรือ buzzcity

Java GUI การใช้ Radio Buttons ใน Java โดยใช้ JRadioButton (How to Use Radio Buttons)

Java GUI การใช้ Radio Buttons ใน Java โดยใช้ JRadioButton (How to Use Radio Buttons)

เรามาดูวิธีการใช้งาน JRadioButton เพื่อนำไปสร้าง Radio Buttons กันครับ 

ตัวอย่างโค้ด

import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class JavaCodeExam {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500, 200);
frame.setLocation(10, 10);
frame.setTitle("Frame By Java Code Exam");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

JRadioButton radio1 = new JRadioButton("Java Code Exam");
panel.add(radio1);

JRadioButton radio2 = new JRadioButton("Java");
panel.add(radio2);
JRadioButton radio3 = new JRadioButton("codeExam");
panel.add(radio3);

//Group the radio buttons.
   ButtonGroup group = new ButtonGroup();
   group.add(radio1);
   group.add(radio2);
   group.add(radio3);
   
frame.add(panel);
}
}

จากตัวอย่าง เราใช้ JRadioButton ในการสร้าง Radio Buttons ซึ่งในตัวอย่างนี้สร้าง Radio Button อยู่ 3 อัน จากนั้นก็เอาแต่ละอันไปเซ็ตให้กับ panel ที่ได้สร้างไว้ ใน panel ก็เซตตำแหน่งโดยใช้ setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); เพื่อให้เรียงบนลงล่าง

จากนั้นเราก็นำ radio มาสร้าง group โดยใช้ ButtonGroup ใน ButtonGroup จะทำการเพิ่ม Radio Button ที่ต้องการให้อยู่ใน group เดียวกัน

ผลลัพท์ที่ได้


yengo หรือ buzzcity

วันพฤหัสบดีที่ 20 กุมภาพันธ์ พ.ศ. 2557

Java GUI การใช้ checkbox โดย JCheckBox (How to Use Check Boxes)

Java GUI การใช้ checkbox โดย JCheckBox (How to Use Check Boxes)

ตัวอย่างนี้เรามาดูวิธีการใช้ Checkbox ในภาษา Java กันครับ ซึ่งในการสร้าง Checkbox นั้นในตัวอย่างนี้จะใช้ JCheckbox ครับ

ตัวอย่างโค้ด

import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaCodeExam {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500, 200);
frame.setLocation(10, 10);
frame.setTitle("Frame By Java Code Exam");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

JCheckBox ck1 = new JCheckBox("Java Code Exam");
panel.add(ck1);

JCheckBox ck2 = new JCheckBox("Java");
panel.add(ck2);
JCheckBox ck3 = new JCheckBox("codeExam");
panel.add(ck3);

frame.add(panel);
}
}

จากตัวอย่างโค้ด ได้สร้าง checkbox จาก JCheckbox ซึ่งสร้างมา 3 อัน แล้วก็สร้าง Panel ขึ้นมาจาก JPanel แล้วนำ Panel ที่ได้ไป add checkbox ที่ทำไว้

ใน panel ได้กำหนด setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); เพื่อให้ checkbox เรียงลงมาจากบนลงล่าง

ผลลัพธ์ที่ได้


yengo หรือ buzzcity

Java GUI การใช้ปุ่มโดย JButton (How to Use the Common Button API)

Java GUI การใช้ปุ่มโดย JButton (How to Use the Common Button API)

ตัวอย่างโค้ดโปรแกรมนี้เป็นตัวอย่างการใช้ปุ่มในภาษา Java โดยใช้ JButton ในการสร้างปุ่ม

ตัวอย่างโค้ด

import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaCodeExam {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500, 200);
frame.setLocation(10, 10);
frame.setTitle("Frame By Java Code Exam");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

JButton button = new JButton("Java Code Exam");
panel.add(button);

JButton button2 = new JButton("Java");
button2.setBackground(Color.RED);
panel.add(button2);

JButton button3 = new JButton("CodeExam");
button3.setBorder(BorderFactory.createDashedBorder(Color.red));
panel.add(button3);

frame.add(panel);
}
}

จากตัวอย่างโค้ดข้างบน จะสร้างปุ่ม 3 ปุ่ม 
ปุ่มแรกเป็นธรรมดา 
ปุ่มที่สองมีการเซ็ตสีพื้นหลังให้กับปุ่ม
ปุ่มที่สามมีการเซ็ตขอบให้กับปุ่ม

ซึ่งปุ่มทั้งสามจะอยู่ภายใน panel แล้ว panel จะอยู่ใน frame อีกทีหนึ่ง

ตอนสร้างปุ่ม new JButton เราจะใส่ค่าพารามิเตอร์ ซึ่งค่าที่ใส่เป็น String จะไปแสดงอยู่บนปุ่ม

ดูผลลัพธ์ที่ได้จากรูปด้านล่าง

ผลลัพธ์ที่ได้


yengo หรือ buzzcity