이 기사에서는 Java Swing 구성 요소의 진행률 모니터링 기능 구현에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
Example 1:
import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.progressmonitor; import javax.swing.timer; public class testprogressmonitor {타이머 타이머; public void init () {Final SimulatedTargetmi Target = New SimulatedTargetMi (1000); // 스레드 최종 스레드를 시작하여 시간 소모 작업을 실행합니다. TargetThread = 새 스레드 (대상); targetThread.start (); // 진행 대화 상자 최종 진행 대화 상자 대화 상자 대화 상자 = NULL, "작업이 완료되기를 기다리십시오. 작업이 완료되기 전에 창을 닫지 마십시오. 그렇지 않으면 현재 작업이 취소됩니다 ...", "완료 : 0.00%", 0, target.getAmount (); // 타이머 타이머를 만듭니다 = new Timer (300, new ActionListener () {public void actionPerformed (ActionEvent e) {// 작업 완료 대화 상자의 현재 완료액을 작업 대화 상자의 양으로 설정하는 비율을 설정합니다. 진행 대화 상자 (dialog.iscanceled ()) {// 타이머를 중지합니다. timer.start (); } public static void main (String [] args) {new testProgressMonitor (). init (); }} // 시간이 많이 걸리는 작업 클래스 시뮬레이션 SimulatedTargetMi는 실행 가능 {// 작업의 현재 완료 개인 휘발성 int current; // 총 작업 볼륨 비공개 int 금액; public simulatedTargetmi (int umoll) {current = 0; this.amount = 금액; } public int getAmount () {반환 금액; } public int getCurrent () {return current; } // 실행 메소드는 작업을 지속적으로 완료하는 프로세스를 나타냅니다. 공개 void run () {while (current <molits) {try {thread.sleep (50); } catch (InterruptedException e) {} current ++; }} public string getPercent () {return string.format ( "%. 2f", 100.0 * current / molits) + "%"; }}실행 효과 :
Example 2:
import java.awt.flowlayout; import java.awt.font; import java.awt.event.actionevent; import java.awt.event. actionlistener; import java.awt.event.windowadapter; import java.awt.event.windowevent import javax.swing.box; javax.box.box.box.box.box.box.box.box javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jprogressbar; import javax.swing.timer; 공개 클래스 testjprogressbar {jframe frame = new Jframe ( "www.vevb.com- 현재 진행 상황 표시 ..."); // 수직 진행 막대 생성 JPROGRESSBAR BAR = NEW JPROGRESSBAR (JPROGRESSBAR.HORIZONTAL); jlabel tiplabel = new Jlabel ( "팁 :", jlabel.left); jlabel contentlabel = new Jlabel ( "작업이 완료되기 전에 창을 닫지 마십시오. 그렇지 않으면 현재 작업이 취소됩니다 ...", jlabel.left); jlabel statuslabel = new Jlabel ( "", jlabel.center); public void init () {frame.setlayout (new FlowLayout ()); frame.setResizable (false); tiplabel.setfont (new font ( "serif", font.plain, 14)); ContentLabel.setFont (새 글꼴 ( "serif", font.plain, 14)); statusLabel.setfont (새 글꼴 ( "serif", font.plain, 14)); JPANEL 패널 = 새로운 JPANEL (); // FR5. 세트 보더 (새로운 제목의 보더 ( "BoxLayout -Y"); PALEN.SETLAYOUT (New BoxLayout (Panel, BoxLayout.y_axis)); PALEN.ADD (TIPLABEL); PALEN.ADD (Box.CreateTeThinticStrut (2)); PANIL.ADD (ContentLabel); PANIL.ADD (Box.CreateTeThinticationStrut (7)); PALEN.ADD (BAR); // panel.add (box.createverticalGlue ()); PALEN.ADD (Box.CreateTeThinticStrut (2)); PANIL.ADD (StatusLabel); frame.add (패널, 0); 최종 시뮬레이션 대상 = 새 SimulatedTarget (1000); // 스레드 최종 스레드를 시작하여 시간이 소요되는 작업을 실행합니다. 스레드 스레드 = 새 스레드 (대상); thread.start (); // 진행률 막대 바에서 도면 완료의 백분율을 설정합니다 .SetStringPainted (true); // bar.setPreferredSize (New Dimension (100, 18)); // 진행률 표시 줄의 최대 및 최소값을 설정합니다. Bar.setMinimum (0); // 총 작업을 진행률 막대의 최대 값으로 사용합니다. 최종 타이머 타이머 = New Timer (300, New ActionListener () {public void ActionPerformed (ActionEvent e) {// 작업 막대의 현재 완료량으로 진행률 표시 줄 바의 값을 작업 바 바 .SetValue (target.getCurrent ()); if (target.getamount () <= target. getcurent ()) { "getted (") 예!"); } } }); timer.start (); frame.setLocationRelativeTo (null); frame.setDefaultCloseOperation (jframe.dispose_on_close); // frame.setDefaultCloseOperation (jframe.exit_on_close); frame.addwindowlistener (새 WindowAdapter () {@override public void windowclosing (windowevent e) {Thread.interrupt (); timer.stop (); // System Exit System.Exit (0);}); //이 코드는 배치 된 구성 요소에 따라 창 크기를 설정하여 frame.pack (); frame.setVisible (true); } public static void main (String [] args) {new TestJProgressBar (). init (); }} // 시간이 많이 걸리는 작업 클래스 시뮬레이션 시뮬레이션은 실행 가능 {// 작업의 현재 완료량 개인 휘발성 int current; // 총 작업 볼륨 비공개 int 금액; public simulatedTarget (int umle) {current = 0; this.amount = 금액; } public int getAmount () {반환 금액; } public int getCurrent () {return current; } // 실행 메소드는 작업을 지속적으로 완료하는 프로세스를 나타냅니다. 공개 void run () {while (current <molits) {try {thread.sleep (20); } catch (InterruptedException e) {} current ++; }} public string getPercent () {return string.format ( "%. 1f", 100.0 * current / molits) + "%"; }}실행 결과 :
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.