Files
secondo/Javagui/viewer/hoese/PreloadDialog.java
2026-01-23 17:03:45 +08:00

90 lines
2.1 KiB
Java

package viewer.hoese;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PreloadDialog extends JDialog implements PreloadObserver {
JProgressBar bar;
JButton cancelBtn;
CancelListener cancelListener;
JLabel targetLabel;
JLabel successLabel;
JLabel failedLabel;
private static final String ALL ="all : ";
private static final String FINISHED="finished : ";
private static final String FAILED ="failed : ";
private int success;
private int failed;
public PreloadDialog( Frame parent){
super(parent,true);
bar = new JProgressBar(SwingConstants.HORIZONTAL);
cancelBtn = new JButton("Cancel");
setLayout(new BorderLayout());
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(4,1));
p1.add(bar);
targetLabel = new JLabel(ALL);
successLabel = new JLabel(FINISHED);
failedLabel = new JLabel(FAILED);
p1.add(targetLabel);
p1.add(successLabel);
p1.add(failedLabel);
add(p1, BorderLayout.CENTER);
JPanel p2 = new JPanel();
p2.add(cancelBtn);
add(p2,BorderLayout.SOUTH);
cancelBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
if(cancelListener!=null){
cancelListener.cancel();
}
}
});
setSize(400,200);
}
public void finish(boolean complete){
setVisible(false);
}
public void step(boolean ok){
if(ok){
success++;
successLabel.setText(FINISHED+success);
} else {
failed++;
failedLabel.setText(FAILED+failed);
}
bar.setValue(success+failed);
}
public void setTarget(int targetNumber){
bar.setMinimum(0);
bar.setMaximum(targetNumber);
bar.setValue(0);
targetLabel.setText(ALL+targetNumber);
success=0;
failed=0;
successLabel.setText(FINISHED+success);
failedLabel.setText(FAILED+failed);
}
public void setCancelListener(CancelListener cl){
cancelListener = cl;
}
}