วันจันทร์ที่ 9 มิถุนายน พ.ศ. 2557

ตัวอย่างโค้ดโปรแกรมภาษาจาวา โปรแกรมสำหรับนับตัวเลข ขึ้นลงทีละหนึ่ง แล้วปิดปุ่ม

ตัวอย่างโค้ดโปรแกรมภาษาจาวา โปรแกรมสำหรับนับตัวเลข ขึ้นลงทีละหนึ่ง แล้วปิดปุ่ม

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

เมื่อกดถึงค่าต่ำสุดของจำนวนที่กำหนดไว้แล้ว ปุ่มลบจะกดไม่ได้
เมื่อกดถึงค่าสูงสุดของจำนวนที่กำหนดไว้แล้ว ปุ่มบวกจะกดไม่ได้

โค้ดในที่นี้จะเซ็ตค่าเริ่มต้นให้ค่าเริ่มต้นเป็น 1 มีค่าต่ำสุดเป็น 0 และมีค่าสูงสุดเป็น 20

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

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

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

public class JavaCodeExam extends JFrame implements ActionListener {
private static final String TEXT_PLUS = " + ";
private static final String TEXT_SUBTRACT = " - ";

private JFrame frame;
private JLabel showCount;
private Integer count;
private JButton btnPlus;
private JButton btnSubtract;
private Integer min;
private Integer max;

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);

// สร้าง Panel สำหรับปุ่ม
JPanel panelBtn = new JPanel();

this.btnPlus = new JButton(TEXT_PLUS);
this.btnPlus.addActionListener(this);
panelBtn.add(this.btnPlus, BorderLayout.LINE_START);

this.btnSubtract = new JButton(TEXT_SUBTRACT);
this.btnSubtract.addActionListener(this);
panelBtn.add(this.btnSubtract, BorderLayout.LINE_END);

// สร้าง Panel สำหรับแสดงจำนวน
JPanel panelText = new JPanel();

this.showCount = new JLabel();
panelText.add(this.showCount, BorderLayout.SOUTH);

// สร้าง Panel สำหรับเก็บทั้งหมด
        JPanel panelFull = new JPanel(new BorderLayout());
        panelFull.add(panelBtn, BorderLayout.NORTH); // เซ็ตให้อยู่ข้างบน
        panelFull.add(panelText,  BorderLayout.CENTER); // เซ็ตให้อยู่ตรงกลาง

        this.frame.add(panelFull);
this.frame.setSize(400, 300);

// สร้างค่าเริ่มต้นสำหรับตัวแปรต่าง ๆ
this.count = 1;
this.min = 0;
this.max = 20;
}

@Override
public void actionPerformed(ActionEvent e) {
if(TEXT_PLUS.equals(e.getActionCommand())){
this.count++;
}
else{
this.count--;
}
this.showCount.setText(this.count.toString());

// เช็คว่าค่านั้น เกินกว่าหรือน้อยกว่าจำนวนต่ำสุดกับสูงสุดหรือไม่
this.btnPlus.setEnabled(this.count < this.max);
this.btnSubtract.setEnabled(this.count > this.min);
}
}

จากโค้ดข้างบน
- เราสร้าง Panel สำหรับเก็บปุ่มบวกกับปุ่มลบ
- เราสร้าง Panel สำหรับเก็บ Label ไว้สำหรับแสดงค่า
จากโค้ดเมื่อเรากดปุ่มบวกจะเพิ่มค่า count ซึ่งค่านี้ได้กำหนดค่าเริ่มต้นเป็น 1 เมื่อกดแล้วจะเพิ่มขึ้นเรื่อย ๆ เมื่อถึงขนาดสูงสุด นั่นคือ จำนวน max ซึ่งเราเซ็ตค่าให้เท่ากับ 20 ปุ่มจะปิด ซึ่งใช้คำสั่ง setEnabled ในการเปิดหรือปิดปุ่ม และปุ่มลบก็ทำคล้าย ๆ กัน

ตัวอย่างผลลัพธ์โปรแกรมที่ได้จากโค้ด


yengo หรือ buzzcity

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

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