บทความนี้อธิบายถึงการใช้งานฟังก์ชั่นการตรวจสอบความคืบหน้าของส่วนประกอบ Swing Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ตัวอย่างที่ 1:
นำเข้า java.awt.event.actionevent; นำเข้า java.awt.event.actionListener นำเข้า Javax.swing.progressmonitor; นำเข้า Javax.swing.timer; โมฆะสาธารณะ init () {final simulatedTargetMi target = new SimulatedTargetMi (1,000); // ดำเนินการงานที่ต้องใช้เวลาโดยเริ่มต้นเธรดเธรดสุดท้าย TREIGHT TARGETTHREAD = เธรดใหม่ (เป้าหมาย); targetThread.start (); // สร้างกล่องโต้ตอบความคืบหน้ากล่องโต้ตอบ ProgressMonitor Final = ใหม่ ProgressingMonitor (NULL, "รอให้งานเสร็จสมบูรณ์โปรดอย่าปิดหน้าต่างก่อนที่งานจะเสร็จสมบูรณ์มิฉะนั้นการดำเนินการในปัจจุบันจะถูกยกเลิก ... ", "เสร็จสมบูรณ์: 0.00%", 0, target.getAmount ()); // สร้างตัวจับเวลาตัวจับเวลา = ตัวจับเวลาใหม่ (300, ActionListener ใหม่ () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// ตั้งค่าอัตราส่วนความสมบูรณ์ของกล่องโต้ตอบความคืบหน้าด้วยจำนวนที่สมบูรณ์ของกล่องโต้ตอบงาน กล่องโต้ตอบความคืบหน้าถ้า (Dialog.iscleded ()) {// หยุดตัวจับเวลา Timer.stop (); timer.start (); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ใหม่ testProgressMonitor (). init (); }} // จำลองคลาสงานที่ใช้เวลานาน SimulatedTargetMi ใช้งาน andable {// การเสร็จสิ้นปัจจุบันของงานที่มีความผันผวนของงานส่วนตัว // ปริมาณงานรวมจำนวนเงินส่วนตัว Public SimulatedTargetMi (จำนวน int) {current = 0; this.amount = จำนวน; } สาธารณะ int getAmount () {จำนวนเงินคืน; } public int getCurrent () {return current; } // วิธีการเรียกใช้แสดงถึงกระบวนการของการทำโมฆะสาธารณะให้เสร็จสิ้นอย่างต่อเนื่อง () {ในขณะที่ (ปัจจุบัน <จำนวนเงิน) {ลอง {thread.sleep (50); } catch (interruptedException e) {} current ++; }} สตริงสาธารณะ getPercent () {return string.format ("%. 2f", 100.0 * ปัจจุบัน / จำนวนเงิน) + "%"; -เอฟเฟกต์การทำงาน:
ตัวอย่างที่ 2:
นำเข้า java.awt.flowlayout; นำเข้า java.awt.font; นำเข้า java.awt.event.actionevent; นำเข้า java.awt.event.actionlistener; นำเข้า java.awt.event.windowadapter; นำเข้า Java.awt.event.windowevent javax.swing.jframe; นำเข้า Javax.swing.jlabel; นำเข้า Javax.swing.jpanel; นำเข้า Javax.swing.jprogressbar; นำเข้า Javax.swing.timer; Public Class TestjProgressBar {JFrame Frame = new JFrame ("www.vevb.com - ตัวบ่งชี้ความคืบหน้าปัจจุบัน ... "); // สร้างแถบความคืบหน้าแนวตั้ง JProgressBar Bar = ใหม่ JProgressBar (JProgressBar.horizontal); Jlabel tiplabel = new Jlabel ("เคล็ดลับ:", jlabel.left); JLabel ContentLabel = new JLabel ("โปรดอย่าปิดหน้าต่างก่อนที่งานจะเสร็จสมบูรณ์มิฉะนั้นการดำเนินการปัจจุบันจะถูกยกเลิก ... ", jlabel.left); jlabel statuslabel = new jlabel ("", jlabel.center); โมฆะสาธารณะ init () {frame.setLayout (ใหม่ flowlayout ()); frame.setResizable (เท็จ); tiplabel.setFont (ฟอนต์ใหม่ ("serif", font.plain, 14)); Contentlabel.setFont (ฟอนต์ใหม่ ("serif", font.plain, 14)); Statuslabel.setFont (ตัวอักษรใหม่ ("serif", font.plain, 14)); JPanel Panel = new JPanel (); // fr5.setBorder (ใหม่ titledBorder ("BoxLayout - y")); Panel.setLayout (ใหม่ BoxLayout (แผง, boxlayout.y_axis)); Panel.Add (Tiplabel); Panel.add (Box.createverticalStrut (2)); Panel.Add (ContentLabel); Panel.add (Box.createverticalStrut (7)); Panel.Add (บาร์); // panel.add (box.createverticalglue ()); Panel.add (Box.createverticalStrut (2)); panel.add (statuslabel); frame.add (แผง, 0); เป้าหมายสุดท้าย SimulatedTarget = ใหม่ SimulatedTarget (1,000); // ดำเนินงานที่ต้องใช้เวลานานโดยเริ่มต้นเธรดเธรดสุดท้ายเธรด = เธรดใหม่ (เป้าหมาย); thread.start (); // ตั้งค่าเปอร์เซ็นต์ของการวาดภาพในแถบแถบความคืบหน้า SetstringPainted (จริง); // bar.setPreferredSize (มิติใหม่ (100, 18)); // ตั้งค่าสูงสุดและค่าต่ำสุดของแถบความคืบหน้า bar.setMinimum (0); // ใช้งานทั้งหมดเป็นค่าสูงสุดของแถบความคืบหน้าแถบ setMaximum (target.getAmount ()); ตัวจับเวลาตัวจับเวลาสุดท้าย = ตัวจับเวลาใหม่ (300, ActionListener ใหม่ () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// ตั้งค่าแถบความคืบหน้าด้วยจำนวนเงินที่สมบูรณ์ของแถบแถบงาน ใช่!"); } } }); timer.start (); frame.setLocationRelativeto (null); frame.setDefaultCloseoperation (jframe.dispose_on_close); // frame.setDefaultCloseOperation (jframe.exit_on_close); frame.addwindowListener (ใหม่ WindowAdapter () {@Override โมฆะสาธารณะ windowclosing (windowEvent e) {thread.interrupt (); timer.stop (); // ระบบออกระบบ exit.exit (0);}}); // รหัสนี้ตั้งค่าขนาดหน้าต่างตามส่วนประกอบที่วางไว้เพื่อให้สามารถรองรับส่วนประกอบทั้งหมดที่คุณวางเฟรมแพ็ค (); frame.setVisible (จริง); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ใหม่ testjprogressbar (). init (); }} // จำลองคลาสงานที่ใช้เวลานาน SimulatedTarget ดำเนินการดำเนินการ unnable {// จำนวนเงินที่เสร็จสมบูรณ์ในปัจจุบันของงานที่มีความผันผวนของงานส่วนตัว // ปริมาณงานรวมจำนวนเงินส่วนตัว Public SimulatedTarget (จำนวน int) {current = 0; this.amount = จำนวน; } สาธารณะ int getAmount () {จำนวนเงินคืน; } public int getCurrent () {return current; } // วิธีการเรียกใช้แสดงถึงกระบวนการของการทำโมฆะสาธารณะให้เสร็จสิ้นอย่างต่อเนื่อง () {ในขณะที่ (ปัจจุบัน <จำนวนเงิน) {ลอง {thread.sleep (20); } catch (interruptedException e) {} current ++; }} สตริงสาธารณะ getPercent () {return string.format ("%. 1f", 100.0 * ปัจจุบัน / จำนวนเงิน) + "%"; -ผลการทำงาน:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน