swingfileChoseDemoTwo

package com.fac.ui;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import com.fac.control.ClientContext;
/**
 * 拷贝工具的页面,其中含有两个文本框,三个按钮
 *
 */
public class DLFrame extends JFrame implements ActionListener{
 private JTextField textf;
 private JTextField textt;
 private ClientContext context;
 private JButton but;
/**
 * 构造方法,装载面板
 */
 public DLFrame(){
  init();
 }
 private void init() {
   setSize(400,250);
   setLocationRelativeTo(null);
   setTitle("fastDL");
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   add(centerPan());
   ImageIcon icon=new ImageIcon(this.getClass().getResource("tubiao.png"));
   setIconImage(icon.getImage());
  }
 /**
  * 创建充满窗口的面板
  */
private JPanel centerPan(){
 JPanel panel=new JPanel(new BorderLayout());
 panel.setBorder(new EmptyBorder(30,4,0,4));//上右下左
 JLabel label=new JLabel("FSDL",JLabel.CENTER);
 label.setFont(new Font("微软雅黑", Font.PLAIN, 20));
 panel.add(label,BorderLayout.NORTH);
 //中间加上 按钮和文本框
 panel.add(createCenter(),BorderLayout.CENTER);
 //在南边加上一个按钮
 panel.add(createSB(),BorderLayout.SOUTH);
 return panel;
}
/**
 * 创建南边的按钮
 * @return
 */
private JPanel createSB(){
 JPanel panel=new JPanel();
 but=new JButton("GO");
 but.setEnabled(false);
 
 panel.add(but);
 but.addActionListener(new ActionListener() {
  
  @Override
  public void actionPerformed(ActionEvent e) {
   context.downLoad(textf.getText(),textt.getText());
   but.setEnabled(false);
  }
 });
 return panel;
}
/**
 * 创建中间的区域
 * @return
 */
 private JPanel createCenter(){
  JPanel panel=new JPanel(new GridLayout(2,1,0,30));//行数、 列 数 、列间距、 行间距
  panel.add(createFirst());
  panel.add(createSecond());
  return panel;
 }
 /**
  * 创建第二行的文本框和按钮 to
  * @return
  */
 private JPanel createSecond(){
  JPanel panel=new JPanel(new BorderLayout());
  textt=new JTextField();
  textt.setEditable(false);
  panel.add(textt,BorderLayout.CENTER);
  JButton butT=new JButton("To    ");
  butT.addActionListener(new ActionListener() {
   
   @Override
   public void actionPerformed(ActionEvent e) {
    but.setEnabled(true);
    JFileChooser chooser =new JFileChooser();
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int a=chooser.showOpenDialog(null);
    if(a==chooser.APPROVE_OPTION){
     textt.setText(chooser.getSelectedFile().getAbsolutePath());
    }
   }
  });
  panel.add(butT,BorderLayout.EAST);
  
  return panel;
 }
 /**
  * 创建第一行的文本框和按钮 from
  * @return
  */
 private JPanel createFirst(){
  JPanel panel=new JPanel(new BorderLayout());
  textf=new JTextField();
  textf.setEditable(false);
  panel.add(textf,BorderLayout.CENTER);
  JButton butF =new JButton("From");
  butF.addActionListener(this);
  panel.add(butF,BorderLayout.EAST);
  
  return panel;
  
 }
 @Override
 public void actionPerformed(ActionEvent e) {
  JFileChooser chooser =new JFileChooser();
//  FileNameExtensionFilter filter=new FileNameExtensionFilter("??文件","txt");
//  chooser.setFileFilter(filter);
  int a=chooser.showOpenDialog(this);
  if(a==chooser.APPROVE_OPTION){
   textf.setFont(new Font("微软雅黑", Font.PLAIN, 15));
   textf.setText(chooser.getSelectedFile().getAbsolutePath());
  }
  
 }
 public void setContext(ClientContext context) {
  this.context = context;
 }
 
 
}

 

 

 

 


 

你可能感兴趣的:(swing)