Home / ພື້ນຖານ Desktop app / GUI_Component / ProgressBar
ສຳລັບ ProgressBar ຫຼື JProgressBar (javax.swing.JProgressBar) ຈັດຢູ່ໃນກຸ່ມຂອງ Component ໂດຍ JProgressBar ຈະເຂົ້າມາຈັດການກັບການສະແດງສຖານະຂອງ Process ໃນຮູບແບບຂອງ Progress Bar ສະແດງຕົວເລກສຖານະຂະນະທີ່ກຳລັງເຮັດວຽກ ການໃຊ້ງານ ProgressBar ຈະກ່ຽວກພັນກັບການໃຊ້ງານ Thread ຫຼື SwingWorker ເພາະການກວດສອບ Process ການເຮັດວຽກງານຈະຢູ່ໃນຮູບແບບຂອງ Background Process ສ່ວນຄຳສັ່ງການເຮັດວຽກງານນັ້ນ ສາມາດກຳນົດເງື່ອນໄຂການສະແດງສຖານະ ຈຳນວນ % ຂອງການເຮັດວຽກງານໄດ້ຈາກ Property ຊື່ວ່າ setValue();
public class MyForm extends JFrame {
JProgressBar progressBar;
JButton btnStart;
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("Kittisay");
setLayout(null);
// ProgressBar
progressBar = new JProgressBar();
progressBar.setBounds(70, 43, 196, 26);
progressBar.setStringPainted(true);
add(progressBar);
// Thread
btnStart = new JButton("Start");
btnStart.addActionListener((e) -> {
btnStart.setEnabled(false);
startProgress();
});
btnStart.setBounds(128, 113, 89, 23);
add(btnStart);
}
public void startProgress() {
Runnable runnable = () -> {
for (int i = 0; i <= 100; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
progressBar.setValue(i);
}
btnStart.setEnabled(true);
};
new Thread(runnable).start();
}
public static void main(String[] args) {
MyForm frm = new MyForm();
frm.setVisible(true);
}
ໃນການໃຊ້ ProgressBar ການໃຊ້ງານຈິງນັ້ນຈະຕ້ອງສອດຄ່ອງກັບ Process ທີ່ເກິດຂື້ນຈິງ ເຊິ່ງເຮົາຈະເພີ່ມການເຮັດວຽກງານໃນ Method ນີ້ ເຊັ່ນ ເຮົາມີຂໍ້ມູນທີ່ຈະຕ້ອງ Insert ປະມານ 1000 ລາຍການ ນັ້ນໝາຍເຖິງວ່າເຮົາຈະຕ້ອງວົນລູບ 1000 ເທື່ອ ແລະ ເພື່ອໃຫ້ໄດ້ຄົບ Progress ເທົ່າກັບ 100% ເຮົາຈະຕ້ອງເອົາ 1000/100 = 10 ນັ້ນໝາຍເຖິງວ່າເມື່ອ Loop ເຮັດວຽກຄົບ 10 ເທື່ອ ກໍໃຫ້ສົ່ງໄປ Update ສຖານະ 1 ເທື່ອ