?? ptp.java
字號:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.io.*;
public class PtP extends JFrame implements ItemListener
{
private Container con;
PtPclient ptp=new PtPclient();
PtPserver ser;
private JPanel
pane1=new JPanel(),
pane2=new JPanel();
private JButton
btn1=new JButton("偵聽客戶端操作"),
// btn2=new JButton(""),
btn3=new JButton("下載文件"),
btn2=new JButton("建立連接");
private JComboBox jcb=new JComboBox();
public PtP()//構造函數建立一個框架
{
super("點對點傳輸文件");
this.setSize(260,260);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void setLayout()//界面布局
{
con=this.getContentPane();
pane1.setBorder(new TitledBorder("作為服務端"));
pane1.add(btn1);
//pane1.add(btn2);
btn1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
ser=new PtPserver();
}
});//打開偵聽端口函數,啟動線程監視客戶請求,當接收到用戶的具體文件下載請求是,執行send()函數
pane2.setBorder(new TitledBorder("作為客戶端"));
// btn2.addActionListener(new ActionListener()
// {
// });//與服務器建立連接,并返回它所共享的目錄文件
pane2.add(btn2);
btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ptp.ClientLink();
}
}
);
pane2.add(jcb);
jcb.addItemListener(this);
// jcb.addItemListener(this);
pane2.add(btn3);
btn3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
ptp.recv();
}
//這里要處理文件的下載,用到了recv()函數
});
con.add(pane1,BorderLayout.NORTH);
con.add(pane2,BorderLayout.CENTER);
}
private void addItem(){//向組合框添加項目信息
//String[] s;
System.out.println(ptp.sdirect.length);
for(int k=0;k<ptp.sdirect.length;k++)
{
jcb.addItem(ptp.sdirect[k]);
}
}
public void itemStateChanged(ItemEvent e)
{
//System.out.println("dfsad");
//這里處理將所選擇的索引送給服務器
if(e.getSource() instanceof JComboBox){
int index=jcb.getSelectedIndex();
ptp.sname=ptp.sdirect[index];
ptp.sendFileName();
}
}
/* private void AddComponent(JPanel panel,GridBagLayout Layout,GridBagConstraints gbc,Component com,int row,int column,int numRows,int numColumns,int Weightx,int Weighty)
{
gbc.gridx=row;//
gbc.gridy=column;//指定組建顯示區域左上單元格的坐標
gbc.gridwidth=numRows;
gbc.gridheight=numColumns;//指定組建在行或是列上占用的單元格個數
gbc.weightx=Weightx;
gbc.weighty=Weighty;//分配給組建的外部水平和垂直空間
Layout.setConstraints(com,gbc);
panel.add(com);
//fill 指定當組建超過屏幕時,如何處理大小
//anchor 指定當組建沒有填充完全部區域時,它在顯示區域的位置
}*/
public static void main(String[] args)
{
PtP p=new PtP();
p.setLayout();
// p.addItem();
p.show(true);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -