进度条出来了,但是不显示进度,以下是完整代码:package ui;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ProgressMonitorInputStream;
import javax.swing.SwingConstants;public class DataImporter extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JPanel p = new JPanel(); JButton btn = new JButton("选择文件"); JLabel status = new JLabel("", SwingConstants.CENTER); public DataImporter() {
super("数据导入器");
setBounds(350, 250, 300, 150);
setMinimumSize(new Dimension(300, 150));
setAlwaysOnTop(true); Container c = getContentPane(); btn.setToolTipText("请选择要导入的数据文件");
btn.setPreferredSize(new Dimension(100, 30));
btn.setFocusPainted(false); p.add(btn); status.setForeground(Color.RED);
status.setPreferredSize(new Dimension(300, 35)); btn.addActionListener(this); c.add(p, BorderLayout.NORTH);
c.add(status, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn) {
JFileChooser chooser = new JFileChooser();
int option = chooser.showOpenDialog(DataImporter.this);
if (option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
readFile(file);
status.setText("数据导入成功");
DataImporter.this.repaint();
}
}
} public void readFile(final File file) { Thread thread = new Thread() {
public void run() {
FileInputStream fis = null;
ProgressMonitorInputStream pmis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
fis = new FileInputStream(file);
pmis = new ProgressMonitorInputStream(DataImporter.this,"正在处理", fis);
isr = new InputStreamReader(pmis);
br = new BufferedReader(isr);
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
fis.close();
pmis.close();
isr.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
thread.run();
} public static void main(String[] args) {
DataImporter importer = new DataImporter();
importer.setVisible(true);
}}
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ProgressMonitorInputStream;
import javax.swing.SwingConstants;public class DataImporter extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JPanel p = new JPanel(); JButton btn = new JButton("选择文件"); JLabel status = new JLabel("", SwingConstants.CENTER); public DataImporter() {
super("数据导入器");
setBounds(350, 250, 300, 150);
setMinimumSize(new Dimension(300, 150));
setAlwaysOnTop(true); Container c = getContentPane(); btn.setToolTipText("请选择要导入的数据文件");
btn.setPreferredSize(new Dimension(100, 30));
btn.setFocusPainted(false); p.add(btn); status.setForeground(Color.RED);
status.setPreferredSize(new Dimension(300, 35)); btn.addActionListener(this); c.add(p, BorderLayout.NORTH);
c.add(status, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn) {
JFileChooser chooser = new JFileChooser();
int option = chooser.showOpenDialog(DataImporter.this);
if (option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
readFile(file);
status.setText("数据导入成功");
DataImporter.this.repaint();
}
}
} public void readFile(final File file) { Thread thread = new Thread() {
public void run() {
FileInputStream fis = null;
ProgressMonitorInputStream pmis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
fis = new FileInputStream(file);
pmis = new ProgressMonitorInputStream(DataImporter.this,"正在处理", fis);
isr = new InputStreamReader(pmis);
br = new BufferedReader(isr);
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
fis.close();
pmis.close();
isr.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
thread.run();
} public static void main(String[] args) {
DataImporter importer = new DataImporter();
importer.setVisible(true);
}}
解决方案 »
- 怎么运行用记事本编写的java程序?
- 如何解析 牛津词典 mdx文件
- MYSQL JDBC配置问题
- 怎样把一个字符复制N次,如 'a'变成'aaaaa'
- javamail发邮件出错:SMTPSendFailedException: 354
- 求救,请各位帮看看这个错误。
- JDBC问题
- 关于处理待审核FAQ的办法,请各位给出自认为有价值的待审核FAQ,包括所属子版!
- 请教各位,我用frontpage中插入applet却显不出来为什么??
- 在WL中为何Deploy后的War文件中\WEB-INF\lib中的jar文件不会自动加入ClassPath,如何才能自动加入?
- 请帮小弟看一下这个程序 错在哪啊
- 急!!!哪位高手帮手看一下.在jsp页面下显示数据库的汉字为???
public void run() {
FileInputStream fis = null;
ProgressMonitorInputStream pmis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
fis = new FileInputStream(file);
pmis = new ProgressMonitorInputStream(DataImporter.this,"正在处理", fis);
//isr = new InputStreamReader(pmis);
//
// br = new BufferedReader(isr);
// String line = br.readLine();
// while ((line = br.readLine()) != null) {
// System.out.println(line);
// } int c;
while((c=pmis.read()) != -1) {
//这里处理你的代码
}
fis.close();
pmis.close();
// isr.close();
// br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
ps:文件要够大,小于2秒不显示public void readFile(final File file) { new Thread() {
public void run() {
InputStream fis = null;
ProgressMonitorInputStream pmis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
fis = new FileInputStream(file);
pmis = new ProgressMonitorInputStream(DataImporter.this,"正在处理", fis);
isr = new InputStreamReader(pmis);
br = new BufferedReader(isr);
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
fis.close();
pmis.close();
isr.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
应该是.start()