📄 mainframe.java~15~
字号:
package ui;
import com.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.table.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2009</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MainFrame extends JFrame {
ArrayList downTasks = new ArrayList();
ArrayList downInfos = new ArrayList();
JPanel contentPane;
JButton btnAddTask = new JButton();
JButton btnDeleteTask = new JButton();
JButton btnPause = new JButton();
JButton btnRestart = new JButton();
JTable jTable1 = new JTable();
Object [] columnsName = new Object[]{"文件名","进度","速度","状态","线程数"};
DefaultTableModel model = new DefaultTableModel(columnsName,256);
JScrollPane jScrollPane1 = new JScrollPane();
int row = 0;
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(600, 350));
setTitle("MyDownloader下载");
this.setResizable(false);
btnAddTask.setBounds(new Rectangle(15, 24, 81, 23));
btnAddTask.setText("新建任务");
btnAddTask.addActionListener(new MainFrame_btnAddTask_actionAdapter(this));
btnDeleteTask.setBounds(new Rectangle(142, 24, 81, 23));
btnDeleteTask.setText("删除任务");
btnPause.setBounds(new Rectangle(269, 24, 81, 23));
btnPause.setText("暂停");
btnRestart.setBounds(new Rectangle(391, 24, 81, 23));
btnRestart.setText("开始");
jScrollPane1.setBounds(new Rectangle(23, 67, 551, 201));
contentPane.add(btnAddTask);
contentPane.add(btnDeleteTask);
contentPane.add(btnPause);
contentPane.add(btnRestart);
contentPane.add(jScrollPane1);
jScrollPane1.getViewport().add(jTable1);
this.jTable1.setModel(model);
}
public void btnAddTask_actionPerformed(ActionEvent actionEvent) {
AddTaskFrame frame = new AddTaskFrame(this);
frame.setVisible(true);
}
public void addTask() {
/*TableColumn column = this.jTable1.getColumnModel().getColumn(1);
column.setCellRenderer(new ProgressRenderer());
model.setValueAt(new Integer(0), row, 1);
final int row=this.row;
new Thread() {
public void run() {
int i = 0;
while (true) {
model.setValueAt(new Integer(i), row,1);
try {
sleep(100);
} catch (InterruptedException ex) {
}
i++;
if (i > 100) {
break;
}
}
}
}.start();
this.row++;
*/
DownloadInfo downInfo = (DownloadInfo)downInfos.get(downInfos.size()-1);
model.setValueAt(downInfo.getFilename(),row,0);
model.setValueAt(0,row,1);
TableColumn column = this.jTable1.getColumnModel().getColumn(1);
column.setCellRenderer(new ProgressRenderer());
model.setValueAt(0,row,2);
model.setValueAt("下载中",row,3);
model.setValueAt(downInfo.getThreadNum(),row,4);
row++;
DownloadTask task = new DownloadTask(downInfo);
Thread thread = new Thread(task);
thread.start();
}
class ProgressRenderer extends DefaultTableCellRenderer {
private JProgressBar b = new JProgressBar(0, 100);
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Integer i = (Integer) value;
if (i == null) {
return null;
}
if (i < 100) {
b.setValue(i);
b.setStringPainted(true);
b.setString(i + "%");
return b;
} else if (i >= 100) {
b.setString("完成");
}
String text = "完成";
super.getTableCellRendererComponent(table, text, isSelected,
hasFocus,
row, column);
return this;
}
}
public void setDownInfos(ArrayList downInfos) {
this.downInfos = downInfos;
}
public ArrayList getDownInfos() {
return downInfos;
}
}
class MainFrame_btnAddTask_actionAdapter implements ActionListener {
private MainFrame adaptee;
MainFrame_btnAddTask_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.btnAddTask_actionPerformed(actionEvent);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -