代码1:
public class loadWindow extends JFrame implements ActionListener{
ProgressMonitor progress;
JButton start;
public loadWindow(){
start = new JButton("start");
getContentPane().setLayout(null);
getContentPane().add(start);
start.setBounds(0,50,20,20); start.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
progress = new ProgressMonitor(null,null,null,0,100);
} public static void main(String args[]){
loadWindow form = new loadWindow();
form.setSize(300,300);
form.setVisible(true);
form.show();
}
}为什么没有进度监视器产生?代码2:
public class loadWindow extends JFrame implements ActionListener{
ProgressMonitor progress;
JButton start;
public loadWindow(){
start = new JButton("start");
getContentPane().setLayout(null);
getContentPane().add(start);
start.setBounds(0,50,20,20);
start.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
progress = new ProgressMonitor(null,null,null,0,100);
int i = 0;
while(i<=100)
{
progress.setProgress(i);
i++;
try{
Thread.sleep(1000);
}catch(Exception s){
s.printStackTrace();
}
}
} public static void main(String args[]){
loadWindow form = new loadWindow();
form.setSize(300,300);
form.setVisible(true);
form.show();
}
}
为什么此时显示的进度监视器是白色的,没有进度填充色出现,而且第二次按下start按钮是,没有产生进度监视器。
public class loadWindow extends JFrame implements ActionListener{
ProgressMonitor progress;
JButton start;
public loadWindow(){
start = new JButton("start");
getContentPane().setLayout(null);
getContentPane().add(start);
start.setBounds(0,50,20,20); start.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
progress = new ProgressMonitor(null,null,null,0,100);
} public static void main(String args[]){
loadWindow form = new loadWindow();
form.setSize(300,300);
form.setVisible(true);
form.show();
}
}为什么没有进度监视器产生?代码2:
public class loadWindow extends JFrame implements ActionListener{
ProgressMonitor progress;
JButton start;
public loadWindow(){
start = new JButton("start");
getContentPane().setLayout(null);
getContentPane().add(start);
start.setBounds(0,50,20,20);
start.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
progress = new ProgressMonitor(null,null,null,0,100);
int i = 0;
while(i<=100)
{
progress.setProgress(i);
i++;
try{
Thread.sleep(1000);
}catch(Exception s){
s.printStackTrace();
}
}
} public static void main(String args[]){
loadWindow form = new loadWindow();
form.setSize(300,300);
form.setVisible(true);
form.show();
}
}
为什么此时显示的进度监视器是白色的,没有进度填充色出现,而且第二次按下start按钮是,没有产生进度监视器。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.ProgressMonitor;public class T extends JFrame implements ActionListener {
ProgressMonitor progress; JButton start; public T() {
start = new JButton("start");
getContentPane().setLayout(new FlowLayout());
getContentPane().add(start);
start.addActionListener(this);
} public void actionPerformed(ActionEvent e) {
start.setEnabled(false);
progress = new ProgressMonitor(this, "Process started.", "", 0, 100);
new Thread() {
public void run() {
int i = 0;
while (i <= 100) {
if (progress.isCanceled()) {
System.out.println("Canceled");
start.setEnabled(true);
return;
} progress.setProgress(i);
progress.setNote(i + "%");
i++;
try {
Thread.sleep(100);
} catch (Exception s) {
s.printStackTrace();
}
}
start.setEnabled(true);
System.out.println("Finished");
}
}.start();
} public static void main(String args[]) {
T form = new T();
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setSize(300, 300);
form.setLocationRelativeTo(null);
form.setVisible(true);
form.show();
}
}