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

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

ไม่มีความคิดเห็น :

แสดงความคิดเห็น