新聞中心
java求源代碼
你是青鳥(niǎo)的吧?這我寫(xiě)過(guò)?有源碼?這里怎么上傳壓縮包啊
成都創(chuàng)新互聯(lián)公司是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,德陽(yáng)電信服務(wù)器托管,海外高防服務(wù)器,機(jī)柜大帶寬、租用·托管,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
package?ghhh;
import?java.util.Scanner;
public?class?DvD?{
public?static?void?main(String[]?args)?{
int?state[]=new??int[6];
String?name[]=new??String[6];
int?date[]=new?int[6];
int?count[]=new?int?[6];
name[0]="權(quán)利的游戲";
name[1]="命運(yùn)之夜";
name[2]="傲慢與偏見(jiàn)";
state[0]=1;
state[1]=0;
state[2]=1;
date[0]=13;
date[1]=0;
date[2]=9;
count[0]=23;
count[1]=23;
count[2]=23;
int?n;
// boolean?n=false;
do{
System.out.println("歡迎使用迷你DVD管理器");
System.out.println("1.新增DVD");
System.out.println("2.查看DVD");
System.out.println("3.刪除DVD");
System.out.println("4.借出DVD");
System.out.println("5.歸還DVD");
System.out.println("6.退出DVD");
Scanner?input?=new?Scanner(System.in);
System.out.println("請(qǐng)選擇:");
?n=input.nextInt();
switch(n){
case?1:
System.out.println("請(qǐng)輸入要增加DVD的名稱:");
String?name1=input.next();
boolean?flag=false;
for(int?i=0;iname.length;i++){
if(name[i]==null){
name[i]=name1;
flag=true;
break;
}
}
if(flag){
System.out.println("新增DVD"+name1+"成功");
}else{
System.out.println("貨架已滿!增加失??!");
}
System.out.println("請(qǐng)輸入0返回!");
n=input.nextInt();
break;
case?2:
System.out.println("序號(hào)\t"+"狀態(tài)\t"+"名稱\t\t"+"借出日期\t"+"借出次數(shù)");
for(int?i=0;iname.length;i++){
if(name[i]!=null){
String?state1?=((state[i]==0)?"可借":"已借");
String?date1=((date[i]==0)?"":date[i]+"日");
String?count1=count[i]+"次";
System.out.println((i+1)+"\t"+state1+"\t"+name[i]+"\t"+date1+"\t\t"+count1);
}
}
System.out.println("請(qǐng)輸入0返回!");
n=input.nextInt();
break;
case?3:
System.out.println("請(qǐng)輸入要?jiǎng)h除的DVD名稱:");
String?name2=input.next();
int?index=-1;
boolean?a=false;
boolean?flag1=false;
for(int?i=0;iname.length;i++){
if(name2.equals(name[i])state[i]==1){
System.out.println("此DVD已經(jīng)借出,無(wú)法刪除");
a=true;
break;
}else?if(name2.equals(name[i])state[i]==0){
a=true;
index=i;
flag1=true;
System.out.println("刪除成功!");
break;
}
}
if(a==false){
System.out.println("沒(méi)有找到相同名稱的DVD!");
}
if(flag1){
for?(int?i=index;iname.length;i++){
if(i!=name.length-1){
name[i]=name[i+1];
state[i]=state[i+1];
date[i]=date[i+1];
count[i]=count[i+1];
}
name[name.length-1]=null;
state[name.length-1]=0;
date[name.length-1]=0;
count[name.length-1]=0;
}
}
System.out.println("請(qǐng)輸入0返回!");
n=input.nextInt();
break;
case?4:
System.out.println("請(qǐng)輸入要借出的DVD:");
?String?name3=input.next();
?boolean?a3=false;
?boolean?b3=false;
?for(int?i=0;iname.length;i++){
?if(name3.equals(name[i])??state[i]==1){
?System.out.println("該DVD已經(jīng)借出");
?a3=true;
?}else?if(name3.equals(name[i])??state[i]==0){
?do{
?System.out.println("請(qǐng)輸入借出的日期:");
int?m=input.nextInt();
?
?if(m31||m1){
?System.out.println("請(qǐng)重新輸入日期:");
?b3=true;
?}else{
?date[i]=m;?
?state[i]=1;
?count[i]+=1;
?}
?
?}while(b3==true);
?System.out.println("借出成功!");
?a3=true;
?}
?}
?if(a3==false){
?System.out.println("沒(méi)有該DVD");
?}
?System.out.println("請(qǐng)輸入0返回!");
?n=input.nextInt();
break;
case?5:
System.out.println("請(qǐng)輸入要?dú)w還的DVD:");
String?name5=input.next();
boolean?b5=false;
boolean?m5=false;
for(int?i=0;iname.length;i++){
if(name5.equals(name[i])??state[i]==1){
b5=true;
do{
System.out.println("請(qǐng)輸入要?dú)w還DVD的日期:(歸還日期請(qǐng)輸入當(dāng)月日期?1~31)");
int?a5=input.nextInt();
if(a531){
System.out.println("請(qǐng)重新輸入日期:");
m5=true;
}else?if(a5date[i]){
System.out.println("借出日期是"+date[i]+"日\(chéng)t輸入的日期不能小于借出的日期,請(qǐng)重新輸入日期:");
m5=true;
}else{
state[i]=0;
System.out.println("歸還成功");
System.out.println("借出日期是:"+date[i]+"歸還日期是:"+a5+"日\(chéng)t租金一天一元:共"+(a5-date[i])+"元");
???date[i]=0;
???m5=false;
}
}while(m5==true);
}else?if?(name5.equals(name[i])??state[i]==0){
System.out.println("該DVD未借出,不可歸還!");
b5=true;
}
}
if(b5==false){
System.out.println("沒(méi)有該名稱的DVDV");
}
System.out.println("請(qǐng)輸入0返回!");
?n=input.nextInt();
break;
case?6:
n=1;
System.out.println("程序退出!");
break;
default:
if(n==0){
}else{
System.out.println("輸入錯(cuò)誤!請(qǐng)重新輸入!");
n=0;
}
break;
}
}while(n==0);
System.out.println("謝謝使用!");
}
}
看看有沒(méi)有問(wèn)題 好久之前的了
求編寫(xiě)一個(gè)超級(jí)簡(jiǎn)單的Java的程序源代碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ConstructFrame extends JFrame
{
private static final long serialVersionUID = 1L;
String value1="",result,value2="";
int flag=0,fix=0,sum=1;
Boolean happy;
JTextField text=new JTextField(30);
int flagsum=0;
Container c=getContentPane();
JButton buttonx;
ConstructFrame()
{ super("計(jì)算器");
c.setLayout(null);
c.setBackground(Color.blue);
this.setSize(400, 400);
c.add(text);
text.setHorizontalAlignment(JTextField.RIGHT);
final JButton buttonx=new JButton("BackSpace");
c.add(buttonx);
buttonx.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
int count=0;
String temp;
if(flag==0)
{
count=value1.length();
if(count!=1)
temp=value1.substring(0, count-1);
else
temp="0";
value1=temp;
}
else
{
count=value2.length();
if(count!=1)
temp=value2.substring(0, count-1);
else
temp="0";
value2=temp;
}
text.setText(temp);
}
});
final JButton buttony=new JButton("CE");
c.add(buttony);
buttony.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
value1="";
value2="";
flag=0;
text.setText("0");
}
});
final JButton button1=new JButton("1");
c.add(button1);
button1.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+1;
temp=value1;
}
else
{
value2=value2+1;
temp=value2;
}
text.setText(temp);
}
});
final JButton button2=new JButton(" 2 ");
c.add(button2);
button2.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+2;
temp=value1;
}
else
{
value2=value2+2;
temp=value2;
}
text.setText(temp);
}
});
final JButton button3=new JButton("3");
c.add(button3);
button3.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+3;
temp=value1;
}
else
{
value2=value2+3;
temp=value2;
}
text.setText(temp);
}
});
final JButton button4=new JButton("4");
c.add(button4);
button4.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+4;
temp=value1;
}
else
{
value2=value2+4;
temp=value2;
}
text.setText(temp);
}
});
final JButton button5=new JButton("5");
c.add(button5);
button5.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+5;
temp=value1;
}
else
{
value2=value2+5;
temp=value2;
}
text.setText(temp);
}
});
final JButton button6=new JButton("6");
c.add(button6);
button6.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+6;
temp=value1;
}
else
{
value2=value2+6;
temp=value2;
}
text.setText(temp);
}
});
final JButton button7=new JButton("7");
c.add(button7);
button7.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+7;
temp=value1;
}
else
{
value2=value2+7;
temp=value2;
}
text.setText(temp);
}
});
final JButton button8=new JButton("8");
c.add(button8);
button8.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+8;
temp=value1;
}
else
{
value2=value2+8;
temp=value2;
}
text.setText(temp);
}
});
final JButton button9=new JButton("9");
c.add(button9);
button9.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+9;
temp=value1;
}
else
{
value2=value2+9;
temp=value2;
}
text.setText(temp);
}
});
final JButton button0=new JButton("0");
c.add(button0);
button0.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
String temp;
if(flag==0)
{
value1=value1+0;
temp=value1;
}
else
{
value2=value2+0;
temp=value2;
}
text.setText(temp);
}
});
final JButton buttonadd=new JButton(" + ");
c.add(buttonadd);
buttonadd.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
flag=1;
fix=1;
flagsum=0;
}
});
final JButton buttonsubtract=new JButton(" - ");
c.add(buttonsubtract);
buttonsubtract.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
flag=1;
fix=2;
flagsum=0;
}
});
final JButton buttoncheng=new JButton(" * ");
c.add(buttoncheng);
buttoncheng.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
flag=1;
fix=3;
flagsum=0;
}
});
final JButton buttonchu=new JButton(" / ");
c.add(buttonchu);
buttonchu.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
flag=1;
flagsum=0;
fix=4;
}
});
final JButton buttonequal=new JButton(" = ");
c.add(buttonequal);
buttonequal.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
double temp1,temp2;
double temp=0;
flagsum=0;
temp1=Double.parseDouble(value1);
temp2=Double.parseDouble(value2);
flag=0;
switch(fix)
{
case 1: temp=temp1+temp2;break;
case 2: temp=temp1-temp2;break;
case 3: temp=temp1*temp2;break;
case 4: temp=temp1/temp2;break;
}
result=Double.valueOf(temp).toString();
value1=result;
value2="";
flag=1;
text.setText(result);
}
});
final JButton buttonpoint=new JButton(".");
c.add(buttonpoint);
buttonpoint.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{ if(flagsum==0)
{
String temp;
if(flag==0 )
{
value1=value1+".";
temp=value1;
}
else
{
value2=value2+".";
temp=value2;
}
flagsum=1;
text.setText(temp);
}
}
});
JButton buttonz=new JButton("Start");
c.add(buttonz);
buttonz.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{ if(sum%2==1)
{
happy=true;
text.setText("0.");
flag=0;
}
else
{
happy=false;
value1="";
value2="";
text.setText("");
}
text.setEnabled(happy);
button1.setEnabled(happy);
button2.setEnabled(happy);
button3.setEnabled(happy);
button4.setEnabled(happy);
button5.setEnabled(happy);
button6.setEnabled(happy);
button7.setEnabled(happy);
button8.setEnabled(happy);
button9.setEnabled(happy);
button0.setEnabled(happy);
buttonx.setEnabled(happy);
buttony.setEnabled(happy);
buttonadd.setEnabled(happy);
buttonsubtract.setEnabled(happy);
buttonpoint.setEnabled(happy);
buttonequal.setEnabled(happy);
buttoncheng.setEnabled(happy);
buttonchu.setEnabled(happy);
sum++;
}
});
button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
button5.setEnabled(false);
button6.setEnabled(false);
button7.setEnabled(false);
button8.setEnabled(false);
button9.setEnabled(false);
button0.setEnabled(false);
buttonx.setEnabled(false);
buttony.setEnabled(false);
buttonadd.setEnabled(false);
buttonsubtract.setEnabled(false);
buttonpoint.setEnabled(false);
buttonequal.setEnabled(false);
buttoncheng.setEnabled(false);
buttonchu.setEnabled(false);
text.setEnabled(false);
text.setBounds(20, 20, 200, 40);
buttonx.setBounds(20, 60,100, 40);
buttony.setBounds(140, 60,100, 40);
buttonz.setBounds(260, 60,80, 40);
button1.setBounds(20, 120,60, 40);
button2.setBounds(100, 120,60, 40);
button3.setBounds(180, 120,60, 40);
buttonadd.setBounds(260, 120,60, 40);
button4.setBounds(20, 180,60, 40);
button5.setBounds(100, 180,60, 40);
button6.setBounds(180, 180,60, 40);
buttonsubtract.setBounds(260, 180,60, 40);
button7.setBounds(20, 240,60, 40);
button8.setBounds(100, 240,60, 40);
button9.setBounds(180, 240,60, 40);
buttoncheng.setBounds(260,240,60,40);
button0.setBounds(20, 300,60, 40);
buttonpoint.setBounds(100, 300, 60, 40);
buttonequal.setBounds(180,300,60, 40);
buttonchu.setBounds(260, 300,60, 40);
setVisible(true);
}
class MYMouseEvent extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
value1=e.toString();
text.setText(value1);
}
}
}
class Calutator
{
public static void main(String[] args)
{
new ConstructFrame();
}
}
你自己慢慢的看吧!
求一個(gè)JAVA音樂(lè)播放器的源代碼
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MediaPlayer extends JFrame implements ActionListener,
ItemListener, ControllerListener {
String title;
Player player;
boolean first = true, loop = false;
Component vc, cc;
String currentDirectory=null;
// 構(gòu)造函數(shù),其中包括了設(shè)置響應(yīng)窗口事件的監(jiān)聽(tīng)器。
MediaPlayer(String title) {
super(title);
/* 關(guān)閉按鈕的實(shí)現(xiàn)。。 */
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
public void windowClosed(WindowEvent e) {
if (player != null)
player.close();
System.exit(0);
}
});
// 調(diào)用程序菜單欄的方法成員完成菜單的布置
setupMenu();
setSize(400, 400);
setVisible(true);
}
// 本方法用以設(shè)置程序菜單欄
public void setupMenu() {
// 設(shè)置一個(gè)菜單
Menu f = new Menu("文件");
// 往設(shè)置的菜單添加菜單項(xiàng)
MenuItem mi = new MenuItem("打開(kāi)");
f.add(mi);
mi.addActionListener(this);
f.addSeparator();
CheckboxMenuItem cbmi = new CheckboxMenuItem("循環(huán)", false);
cbmi.addActionListener(this);
f.add(cbmi);
f.addSeparator();
MenuItem ee = new MenuItem("退出");
ee.addActionListener(this);
f.add(ee);
f.addSeparator();
Menu l = new Menu("播放列表");
Menu c = new Menu("播放控制");
MenuItem move = new MenuItem("播放");
move.addActionListener(this);
c.add(move);
c.addSeparator();
MenuItem pause = new MenuItem("暫停");
pause.addActionListener(this);
c.add(pause);
c.addSeparator();
MenuItem stop = new MenuItem("停止");
stop.addActionListener(this);
c.add(stop);
c.addSeparator();
// 設(shè)置一個(gè)菜單欄
MenuBar mb = new MenuBar();
mb.add(f);
mb.add?;
mb.add(l);
// 將構(gòu)造完成的菜單欄交給當(dāng)前程序的窗口;
setMenuBar(mb);
}
// 動(dòng)作時(shí)間響應(yīng)成員;捕捉發(fā)送到本對(duì)象的各種事件;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String cufile, selectfile, currentDirectory;
if (e.getActionCommand().equals("退出")) {
// 調(diào)用dispose以便執(zhí)行windowClosed
dispose();
return;
}
// 此事表明擁護(hù)選擇了“播放”命令;
// 如果當(dāng)前有一個(gè)文件可以播放則執(zhí)行播放命令;
if (e.getActionCommand().equals("播放")) {
if (player != null) {
player.start();
}
return;
}
// 如果當(dāng)前正在播放某一文件,則執(zhí)行暫停;
if (e.getActionCommand().equals("暫停")) {
if (player != null) {
player.stop();
}
return;
}
// 停止命令的響應(yīng);
if (e.getActionCommand().equals("停止")) {
if (player != null) {
player.stop();
player.setMediaTime(new Time(0));
}
return;
}
// 用戶選擇要播放的媒體文件
if (e.getActionCommand().equals("打開(kāi)")) {
FileDialog fd = new FileDialog(this, "打開(kāi)媒體文件", FileDialog.LOAD);
// fd.setDirectory(currentDirectory);
2008-2-6 02:46 回復(fù)
肆方茉莉
62位粉絲
6樓
fd.setVisible(true);
// 如果用戶放棄選擇文件,則返回
if (fd.getFile() == null) {
return;
}
// 保存了所選文件的名稱及其路徑名稱已被稍后使用
// 同時(shí)設(shè)置當(dāng)前文件夾路徑
selectfile = fd.getFile();
currentDirectory = fd.getDirectory();
cufile = currentDirectory + selectfile;
// 將用戶選擇的文件作為一個(gè)菜單項(xiàng)加入播放列表,該菜單項(xiàng)名為該文件名;
// 被點(diǎn)擊后給出的命令串是該文件的全路徑名
MenuItem mi = new MenuItem(selectfile);
mi.setActionCommand(cufile);
MenuBar mb = getMenuBar();
Menu m = mb.getMenu(2);
mi.addActionListener(this);
m.add(mi);
} else {
// 程序邏輯運(yùn)行到次表示用戶選擇了一個(gè)“播放列表”中的媒體文件
// 此時(shí)可以通過(guò)如下動(dòng)作獲得該文件的全路徑名
cufile = e.getActionCommand();
selectfile = cufile;
}
// 如果存在一個(gè)播放器,則先將其關(guān)閉,稍后再重新創(chuàng)建
// 創(chuàng)建播放器時(shí)需要捕捉一些異常
if (player != null) {
player.close();
}
try {
player = Manager.createPlayer(new MediaLocator("file:" + cufile));
} catch (Exception e2) {
System.out.println(e2);
return;
}/*
* catch(NoPlayerException e2){ System.out.println("不能找到播放器");
* return ; }
*/
if (player == null) {
System.out.println("無(wú)法創(chuàng)建播放器");
return;
}
first = false;
setTitle(selectfile);
// 設(shè)置處理播放控制器實(shí)際的對(duì)象;
/**/
player.addControllerListener(this);
player.prefetch();
}
// 菜單狀態(tài)改變事件的響應(yīng)函數(shù);
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MediaPlayer("播放器");
}
// 調(diào)用繪圖函數(shù)進(jìn)行界面的繪制 // public void update() {
// }
// 繪圖函數(shù)成員 //public void paint(Graphics g) {
// }
public void controllerUpdate(ControllerEvent e) {
// TODO Auto-generated method stub
Container tainer = getContentPane();
// 調(diào)用player.close()時(shí)ControllerClosedEvent事件出現(xiàn)
// 如果存在視覺(jué)部件,則該部件應(yīng)該拆除(為了一致起見(jiàn),我們對(duì)控制面版部件也執(zhí)行同樣的操作,下一次需要時(shí)再構(gòu)造)
if (e instanceof ControllerClosedEvent) {
if (vc != null) {
remove(vc);
vc = null;
}
if (cc != null) {
remove(cc);
cc = null;
}
}
// 播放結(jié)束時(shí),將播放指針置于文件之首,如果設(shè)定了循環(huán)播放,則再次啟動(dòng)播放器;
if (e instanceof EndOfMediaEvent) {
player.setMediaTime(new Time(0));
if (loop) {
player.start();
}
return;
}
// PrefetchCompletEvent事件發(fā)生后調(diào)用start,正式啟動(dòng)播放
if (e instanceof PrefetchCompleteEvent) {
player.start();
return;
}
// 本事件表示由于播放的資源已經(jīng)確定;此時(shí)要將媒體的圖形conmopnent
// 如果有顯示出來(lái),同時(shí)將播放器player的控制顯示到窗口里;
if (e instanceof RealizeCompleteEvent) {
// 如果媒體中有圖像,將對(duì)應(yīng)圖像component載入窗體;
vc = player.getVisualComponent();
if (vc != null)
tainer.add(vc, BorderLayout.CENTER);
// 將對(duì)應(yīng)控制器component載入窗體;
cc = player.getControlPanelComponent();
cc.setBackground(Color.blue);
if (cc != null)
tainer.add(cc, BorderLayout.SOUTH);
// 有一些特殊媒體在播放時(shí)提供另外的控制手段,將控制器一并加入窗口;
/*
* gc=player.getGainControl(); gcc=gc.getControlComponent();
* if(gcc!=null) tainer.add(gcc,BorderLayout.NORTH);
*/
// 根據(jù)媒體文件中是否有圖像,設(shè)定相應(yīng)的窗口大小
if (vc != null) {
pack();
return;
} else {
setSize(300, 75);
setVisible(true);
return;
}
}
} }
求TCP/IP client server socket的JAVA代碼
我這剛好有一個(gè),給你參考一下:(分客戶端和服務(wù)器兩個(gè)小程序)
//客戶端程序及聊天室的圖形用戶界面
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class ChatTCPSocketJFrame extends JFrame implements ActionListener
{
private String name; //網(wǎng)名
private Socket socket; //TCP Socket對(duì)象
private JTextArea text_receiver; //顯示對(duì)話內(nèi)容的文本區(qū)
private JTextField text_sender; //輸入發(fā)送內(nèi)容的文本行
private JButton button_send,button_leave; //發(fā)送和離線按鈕
private PrintWriter cout; //字符輸出流對(duì)象
public ChatTCPSocketJFrame(String name, Socket socket) throws IOException//提供圖形用戶界面
{
super("聊天室 "+name+" "+InetAddress.getLocalHost()+" : "+socket.getLocalPort());
this.setBounds(320,240,400,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.text_receiver = new JTextArea();
this.text_receiver.setEditable(false); //文本區(qū)不可編輯
this.getContentPane().add(new JScrollPane(this.text_receiver));
JPanel panel = new JPanel();
this.getContentPane().add(panel,"South");
this.text_sender = new JTextField(16);
panel.add(this.text_sender);
button_send = new JButton("發(fā)送");
panel.add(button_send);
button_send.addActionListener(this);
button_leave = new JButton("離線");
panel.add(button_leave);
button_leave.addActionListener(this);
this.setVisible(true);
this.name = name;
this.socket = socket;
this.cout = new PrintWriter(socket.getOutputStream(),true);//獲得Socket對(duì)象的輸出流,立即flush
this.cout.println(name); //發(fā)送自己網(wǎng)名給對(duì)方
BufferedReader cin=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//獲得Socket對(duì)象的輸入流,創(chuàng)建字符輸入流
String aline=cin.readLine(); //接收到對(duì)方網(wǎng)名
text_receiver.append("連接"+aline+"成功"+"\r\n"); //顯示對(duì)方發(fā)來(lái)的內(nèi)容
aline= cin.readLine();
while (aline!=null !aline.equals("bye")) //從輸入流接收對(duì)方發(fā)來(lái)的字符串
{ //"bye"是約定的離線信息
text_receiver.append(aline+"\r\n"); //顯示對(duì)方發(fā)來(lái)的內(nèi)容
aline= cin.readLine();
}
cin.close();
cout.close();
socket.close(); //關(guān)閉Socket連接
button_send.setEnabled(false);
button_leave.setEnabled(false);
}
public ChatTCPSocketJFrame(String name, String host, int port) throws IOException //客戶端
{
this(name, new Socket(host, port)); //客戶端向指定主機(jī)的端口發(fā)出TCP連接請(qǐng)求
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==button_send) //發(fā)送按鈕
{
this.cout.println(name+" 說(shuō):"+text_sender.getText()); //通過(guò)流發(fā)送給對(duì)方
text_receiver.append("我說(shuō):"+text_sender.getText()+"\n");
text_sender.setText("");
}
if (e.getSource()==button_leave) //離線
{
text_receiver.append("我離線\n");
this.cout.println(name+"離線\n"+"bye"); //發(fā)送給對(duì)方離線約定
button_send.setEnabled(false);
button_leave.setEnabled(false);
}
}
public static void main(String args[]) throws IOException
{
new ChatTCPSocketJFrame("小蜜蜂", "127.0.0.1", 2001);
}
}
//服務(wù)端程序
import java.net.*;
import java.io.*;
public class ChatTCPServer
{
public ChatTCPServer(int port, String name) throws IOException //約定端口、網(wǎng)名
{ //本機(jī)IP地址和指定端口構(gòu)成服務(wù)端的Socket
ServerSocket server = new ServerSocket(port); //ServerSocket提供TCP連接服務(wù)
Socket client = server.accept(); //等待接收客戶端的連接申請(qǐng)
new ChatTCPSocketJFrame(name,client); //服務(wù)端的聊天室,圖形用戶界面同客戶端
server.close();
}
public static void main(String args[]) throws IOException
{
new ChatTCPServer(2001, "花仙子"); //啟動(dòng)服務(wù)端,約定端口,指定網(wǎng)名
}
}
網(wǎng)站標(biāo)題:小蜜蜂java源代碼 小蜜蜂編程使用說(shuō)明
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/dooejhh.html