⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netsenderframe.java

📁 用swt作的一个类似飞鸽一样的局域网通信工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * 
 */
package view.sender;

import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.StringTokenizer;

import main.NetTransfer;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CBanner;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Text;

import thread.sender.GetOnlineListThread;
import thread.sender.NetSenderDaemon;
import ThemeFrame.SAPWindowFrame;
import extend.Configuration;
import extend.IPAndHostPackage;
import extend.SortIPAddress;


/**
 * @author user
 *
 */
public class NetSenderFrame extends Composite {

	private SashForm sashForm = null;
	private Composite composite = null;
	private Composite composite1 = null;
	private SAPWindowFrame parent;  //  @jve:decl-index=0:
	private NFS_BackPanel nfsBackPanel;
	private Text textArea = null;
	private Composite composite2 = null;
	private CBanner cBanner = null;
	private Composite composite3 = null;
	private Button button = null;
	private CLabel cLabel = null;
	private CLabel cLabel1 = null;
	private CCombo cCombo = null;
	private Composite composite5 = null;
	private Button button1 = null;
	private Hashtable selectedFiles = new Hashtable();//管理File 句柄列表  //  @jve:decl-index=0:
	private ArrayList list_NSF_FileHI = new ArrayList();//管理NSF_FileHandleItem 列表  //  @jve:decl-index=0:
	private Menu menu = null;
	private MenuItem addFileMI = null;
	private MenuItem addFolderMI = null;
	private MenuItem delAllMI = null;
	private Image fileLogo = new Image(Display.getCurrent(), getClass().getResourceAsStream("/view/picture/file.png"));
	private Image folderLogo = new Image(Display.getCurrent(), getClass().getResourceAsStream("/view/picture/folder.png"));
	private Image trashLogo = new Image(Display.getCurrent(), getClass().getResourceAsStream("/view/picture/trash.png"));
	private Button button2 = null;
	public NetSenderFrame(SAPWindowFrame parent, int style) {
		super(parent.getShell(), style);
		this.parent = parent;
		initialize();
		/*parent.getShell().addDisposeListener(new DisposeListener(){

			public void widgetDisposed(DisposeEvent e) {
				
				thisDispose();
			}
			
		});*/
		new GetOnlineListThread(this);
	}

	private void initialize() {
		menu = new Menu(this.getShell(),SWT.POP_UP);
		addFileMI = new MenuItem(menu,SWT.POP_UP);
		addFileMI.setText("Add &File");
		addFileMI.setImage(fileLogo);
		addFileMI.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				FileDialog fd = new FileDialog(getShell(),SWT.OPEN|SWT.MULTI);
				fd.open();
				String[] path = fd.getFileNames();
				for(int i=0;i<path.length;i++){
					if (path[i] != null){
						File f = new File(fd.getFilterPath()+"/"+path[i]);
						if (selectedFiles.get(new Integer(f.hashCode()))==null){
							selectedFiles.put(new Integer(f.hashCode()),f);
							list_NSF_FileHI.add(nfsBackPanel.addNFS_FileHandleItem(f));
						}
					}
				}
			}
			public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
			}
		});
		addFolderMI = new MenuItem(menu,SWT.POP_UP);
		addFolderMI.setText("Add Fol&der");
		addFolderMI.setImage(folderLogo);
		addFolderMI
				.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
					public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
						DirectoryDialog dd = new DirectoryDialog(getShell(),SWT.OPEN);
						String path = dd.open();
						if (path != null){
							File f = new File(path); 
							if (selectedFiles.get(new Integer(f.hashCode()))==null){
								selectedFiles.put(new Integer(f.hashCode()),f);
								list_NSF_FileHI.add(nfsBackPanel.addNFS_FileHandleItem(f));
							}
						}
					}
					public void widgetDefaultSelected(
							org.eclipse.swt.events.SelectionEvent e) {
					}
				});
		delAllMI = new MenuItem(menu,SWT.POP_UP);
		delAllMI.setText("&Remove All");
		delAllMI.setImage(trashLogo);
		delAllMI.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				Object[] obj = list_NSF_FileHI.toArray();
				for (int i = 0; i < obj.length; i++){
					((NFS_FileHandleItem) obj[i]).thisDispose();
				}
				selectedFiles.clear();
				nfsBackPanel.packComposite();
			}
			public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
			}
		});
		
		FillLayout fillLayout = new FillLayout();
		fillLayout.marginHeight = 2;
		fillLayout.marginWidth = 4;
		createSashForm();
		this.setLayout(fillLayout);
		this.setSize(new org.eclipse.swt.graphics.Point(355,300));
	}

	/**
	 * This method initializes sashForm	
	 *
	 */
	private void createSashForm() {
		sashForm = new SashForm(this, SWT.VERTICAL);
		sashForm.setBackground(SAPWindowFrame.BACKGROUNDCOLOR);
		createComposite();
		createComposite1();
	}

	/**
	 * This method initializes composite	
	 *
	 */
	private void createComposite() {
		GridLayout gridLayout = new GridLayout();
		gridLayout.horizontalSpacing = 0;
		gridLayout.marginWidth = 0;
		gridLayout.marginHeight = 0;
		gridLayout.verticalSpacing = 0;
		GridData gridData = new org.eclipse.swt.layout.GridData();
		gridData.grabExcessHorizontalSpace = true;
		gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData.grabExcessVerticalSpace = true;
		gridData.horizontalIndent = 0;
		gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		composite = new Composite(sashForm, SWT.BORDER);
		composite.setLayout(gridLayout);
		composite.setBackground(SAPWindowFrame.BACKGROUNDCOLOR);
		textArea = new Text(composite, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
		textArea.setFont(new Font(Display.getDefault(), "\u5b8b\u4f53", 11, SWT.NORMAL));
		textArea.setLayoutData(gridData);
	}

	/**
	 * This method initializes composite1	
	 *
	 */
	private void createComposite1() {
		GridLayout gridLayout2 = new GridLayout();
		gridLayout2.horizontalSpacing = 0;
		gridLayout2.marginWidth = 0;
		gridLayout2.marginHeight = 0;
		gridLayout2.verticalSpacing = 0;
		composite1 = new Composite(sashForm, SWT.NONE);
//		composite1.setBackground(SAPWindowFrame.BACKGROUNDCOLOR);
		createComposite2();
		composite1.setLayout(gridLayout2);
	}

	/**
	 * This method initializes composite2	
	 *
	 */
	private void createComposite2() {
		GridData gridData4 = new GridData();
		gridData4.grabExcessHorizontalSpace = true;
		gridData4.verticalAlignment = GridData.CENTER;
		gridData4.heightHint = -1;
		gridData4.horizontalAlignment = GridData.FILL;
		GridLayout gridLayout1 = new GridLayout();
		gridLayout1.numColumns = 1;
		gridLayout1.verticalSpacing = 0;
		gridLayout1.marginWidth = 0;
		gridLayout1.marginHeight = 0;
		gridLayout1.horizontalSpacing = 0;
		GridData gridData1 = new GridData();  
		gridData1.grabExcessVerticalSpace = true;
		gridData1.horizontalAlignment = GridData.FILL;
		gridData1.verticalAlignment = GridData.FILL;
		gridData1.grabExcessHorizontalSpace = true;
		composite2 = new Composite(composite1, SWT.NONE);
		composite2.setLayoutData(gridData1);
		composite2.setLayout(gridLayout1);
		createCBanner();
		GridData gridComposite = new GridData();
		gridComposite.horizontalAlignment = GridData.FILL;
		gridComposite.verticalAlignment = GridData.FILL;
		gridComposite.grabExcessHorizontalSpace = true;
		gridComposite.heightHint = -1;
		gridComposite.grabExcessVerticalSpace = true;
		nfsBackPanel = new NFS_BackPanel(composite2,SWT.NONE,selectedFiles,list_NSF_FileHI);
		nfsBackPanel.setLayoutData(gridComposite);
		nfsBackPanel.composite.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
			public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
				if (e.button==3){
					int locateX = composite1.getLocation().x+5+e.x;
					int locateY = composite1.getLocation().y + button.getSize().y+cBanner.getSize().y+e.y;
					menu.setLocation(getShell().getLocation().x + locateX,	getShell().getLocation().y	+ locateY);
					menu.setVisible(true);
				}
			}
		});
		/*nftBackPanel.composite.addListener(SWT.MenuDetect,new Listener(){

			public void handleEvent(Event event) {
//				locateX = composite1.getLocation().x+5;
//				locateY = composite1.getLocation().y + button.getSize().y+cBanner.getSize().y;
				menu.setLocation(getShell().getLocation().x + locateX,	getShell().getLocation().y	+ locateY);
				menu.setVisible(true);
			}
			
		});*/
		
		cLabel1 = new CLabel(composite2, SWT.NONE);
		cLabel1.setText("NetSender Version:" + main.NetTransfer.version + " Create by:Tony D.W Xia  ");
//		cLabel1.setBackground(SAPWindowFrame.BACKGROUNDCOLOR);
		cLabel1.setLayoutData(gridData4);
	}

	/**
	 * This method initializes cBanner	
	 *
	 */
	private void createCBanner() {
		GridData gridData2 = new org.eclipse.swt.layout.GridData();
		gridData2.grabExcessHorizontalSpace = true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -