?? download.java
字號:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.TextArea;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.awt.CheckboxGroup;
public class DownLoad extends JFrame implements ActionListener{
private JPanel contentPane;
private JPanel progressPane;
private JTextField textField1=new JTextField();
private JTextField textField2=new JTextField();
private JButton button=new JButton();
private JButton open = new JButton("打開");
private JButton stop = new JButton("停止");
private JComboBox nThreadBox;
private JCheckBox proxybutton = new JCheckBox();
private JLabel label1=new JLabel();
private JLabel label2=new JLabel();
private JLabel label3=new JLabel("設置代理 : ");
private JLabel label4=new JLabel("下載進度:");
private JLabel label5=new JLabel("線程數:");
private JTextArea textArea=new JTextArea();
private JProgressBar jProgressBar = new JProgressBar();
private int nTread = 5;
static String host = "";
static String port = "";
DownLoadFile downFile;
public DownLoad(){
contentPane = (JPanel)this.getContentPane();
contentPane.setLayout(null);
this.setSize(new Dimension(380,400));
this.setLocation(100,100);
this.setTitle("多線程下載");
textField1.setBounds(new Rectangle(150,200,200,20));
textField1.setText("http://");
textField2.setBounds(new Rectangle(150,240,120,20));
textField2.setText("d:\\code.rar");
label1.setBounds(new Rectangle(20,200,120,20));
label1.setText("下載的目標文件為: ");
label2.setBounds(new Rectangle(20,240,120,20));
label2.setText("下載的文件另存為: ");
open.setBounds(280, 240, 60, 20);
open.addActionListener(this);
button.setBounds(new Rectangle(20,280,60,20));
button.setText("下載");
button.addActionListener(this);
stop.setBounds(100, 280, 60, 20);
stop.addActionListener(this);
label3.setBounds(165, 280, 80, 20);
proxybutton.setBounds(225, 280, 20, 20);
proxybutton.addActionListener(this);
nThreadBox= new JComboBox(new String[]{"1","2","3","4","5","6","7","8","9","10"});
label5.setBounds(250, 280, 60, 20);
nThreadBox.setBounds(300, 280, 40, 20);
nThreadBox.addActionListener(this);
contentPane.add(textField1,null);
contentPane.add(textField2,null);
contentPane.add(label1,null);
contentPane.add(label2,null);
contentPane.add(open,null);
contentPane.add(button,null);
contentPane.add(stop,null);
contentPane.add(label3,null);
contentPane.add(proxybutton,null);
contentPane.add(label5);
contentPane.add(nThreadBox);
//contentPane.add(textArea,null);
textArea.setEnabled(false);
textArea.setForeground(Color.black);
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setBounds(new Rectangle(20,20,330,170));
contentPane.add(scrollPane,null);
progressPane = new JPanel();
progressPane.setBounds(20, 320,330,100);
//jProgressBar.setsetSize(100, 100);
//label4.setBounds(10, 320, 60, 20);
//jProgressBar.setBounds(70, 320, 140, 20);
// jProgressBar.setSize(100, 40);
progressPane.add(label4,null);
progressPane.add(jProgressBar,null);
contentPane.add(progressPane);
// progressPane.add(stop);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// this.pack();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DownLoad download = new DownLoad();
download.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == open){
JFileChooser fc=new JFileChooser();
if(fc.showSaveDialog(this)==fc.APPROVE_OPTION){
File f=fc.getSelectedFile() ;
textField2.setText(f.getAbsolutePath()) ;
}
}
if(e.getSource() == button){
//progressPane.add(new JButton("nihao"));
String URL = textField1.getText();
String saveURL = textField2.getText();
if(URL.compareTo("")==0 && saveURL.compareTo("")==0)
{
textArea.setText("請輸入要下載的文件和保存文件完整地址");
}
else
{
try
{
downFile=new DownLoadFile(URL,saveURL,textArea,nTread,jProgressBar);
downFile.start();
textArea.append("主線程啟動、、、");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
if(e.getSource() == nThreadBox){
String item = nThreadBox.getSelectedItem().toString();
System.out.println("item is :"+item);
nTread = Integer.parseInt(item);
}
if(e.getSource() == stop){
downFile.stop();
textArea.append("\n 停止下載??!");
}
if(e.getSource() == proxybutton){
if(proxybutton.isSelected()){
//proxybutton.get
textArea.append("\n 代理服務被選擇");
Point point=this.getLocation();
int x = this.getHeight()/2+point.x;
int y = this.getWidth()/2+point.y;
ProxyPanel proxypanel=new ProxyPanel(x,y);
/*System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost",host);
System.getProperties().put("proxyPort",port);*/
}else{
textArea.append("\n 取消代理服務");
System.getProperties().clear();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -