當前位置:編程學習大全網 - 編程語言 - java編程中結果的可視化表示

java編程中結果的可視化表示

可以? javaSwing 編程? 給妳個例子?

package com.xu.pcchart;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.net.Socket;

import java.sql.Date;

import java.text.SimpleDateFormat;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Clinet extends JFrame implements Runnable, ActionListener

{

private static final long serialVersionUID = 1L;

public static final int PORT? = 8521;

//聲明套接字對象

Socket socket;

//聲明線程對象

Thread thread1;

//聲明客戶端數據輸入輸出流

DataInputStream in;

DataOutputStream out;

//是否登錄的標記

boolean flag = false;

//聲明字符串,name存儲用戶名,chat_txt存儲發送的信息,chat_in存儲從服務器接收到的信息

String name,chat_txt,chat_in;

String ip = null;

/**

* 服務器端主程序負責界面以及服務端主線程ServerThread的啟動

* 服務主線程ServerThread又產生BroadCast及ClientThread線程

*/

//建立服務器端主界面所用到的布局方式

BorderLayout borderlayout1 = new BorderLayout();

BorderLayout borderlayout2 = new BorderLayout();

BorderLayout borderlayout3 = new BorderLayout();

//創建面板

JPanel jPanel1 = new JPanel();

JPanel jPanel2 = new JPanel();

JPanel jPanel3 = new JPanel();

JPanel jPanel4 = new JPanel();

//創建按鈕

JButton jButton1 = new JButton();

JButton jButton2 = new JButton();

JButton jButton3 = new JButton("發送");

JScrollPane jScrollpanel = new JScrollPane();

//創建服務器端接收信息文本框

static? JTextArea jTextArea1 = new JTextArea();

boolean bool = false,start = false;

JLabel usernamelable = new JLabel("用戶名");

JTextField usernametext? = new JTextField(10);

JTextField sendmsgText? = new JTextField(20);

JLabel lable = new JLabel("服務器地址");

JTextField addresslable? =new JTextField("192.168.1.198",10);

//聲明ServerThread線程對象

ServerThread serverThread;

Thread thread;

//構造函數 ,生成客戶端界面

public Clinet()

?{

?//設置內容分面板布局方式

?getContentPane().setLayout(borderlayout1);

?//初始化組件

?jButton1.setText("進入聊天室");

?jButton1.addActionListener(this);

?jButton2.setText("退出聊天室");

?jButton2.addActionListener(this);

?jButton3.addActionListener(this);

?

?//初始化JPanel1面板對象,並向其加入組件

?this.getContentPane().add(jPanel1,java.awt.BorderLayout.NORTH);

jPanel1.add(usernamelable);

jPanel1.add(usernametext);

?jPanel1.add(jButton1);

?jPanel1.add(jButton2);

?

//初始化jpanel2面板對象,並向其加入組件

?jTextArea1.setText("");

?jPanel2.setLayout(borderlayout2);

?

?jPanel2.add(jScrollpanel,java.awt.BorderLayout.CENTER);

?jScrollpanel.getViewport().add(jTextArea1);

?this.getContentPane().add(jPanel2,java.awt.BorderLayout.CENTER);

?jPanel4.add(lable);

?jPanel4.add(addresslable);

?getContentPane().add(jPanel4,java.awt.BorderLayout.EAST);

?

?getContentPane().add(jPanel3,java.awt.BorderLayout.SOUTH);

?jPanel3.add(sendmsgText);

?jPanel3.add(jButton3);

?this.setSize(400,400);

?this.setVisible(true);

?}? ?

public static void main(String[] args)

{

?Clinet server = new Clinet ();

? server.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//界面按鈕的事件處理

@Override

public void actionPerformed(ActionEvent e)

{

?//進入聊天室的按鈕處理

?if(e.getSource() == jButton1)

?{

?//獲取用戶名

?name = usernametext.getText();

?//獲取服務器IP

?ip = addresslable.getText();

?//判斷用戶名是否有效及ip是否為空

?if(name!="用戶名輸入"&&ip != null)

?{

?try

?{

?//創建socket對象

?socket = new Socket(ip,PORT);

?//創建客戶端數據輸入輸出流,用於對服務器端發送或接收數據

?in = new DataInputStream(socket.getInputStream());

?out = new DataOutputStream(socket.getOutputStream());

?Date now = new Date(System.currentTimeMillis());

?SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");

?String nowStr = format.format(now);

?out.writeUTF("$$"+name+" "+nowStr+" 上線了!");

?} catch (Exception e2)

?{

?e2.printStackTrace();

?}

?thread = new Thread(this);

?//開啟線程,監聽服務器端是否有消息

?thread.start();

?//說明已經登錄成功

?flag = true;

?}

?}

?//發送按鈕的處理

?else if(e.getSource() == jButton3)

?{

?//獲取客戶端輸入的發言內容

?chat_txt = sendmsgText.getText();

?if(chat_txt != null)

?{

?Date now = new Date(System.currentTimeMillis());

?SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");

?String nowStr = format.format(now);

?//發言 向服務器發送發言的信息

?try

?{

?out.writeUTF("^-^"+usernametext.getText()+" "+nowStr+" 說\n"+chat_txt);

?} catch (Exception e2)

?{

?// TODO: handle exception

?}

?}

?else

?{

?try

?{

?out.writeUTF("親說話");;

?} catch (Exception e2)

?{

?// TODO: handle exception

?}

?}

?}

?//退出聊天室按鈕事件處理

?else if(e.getSource() == jButton2)

?{

?if(flag == true)

?{

?try

?{

?out.writeUTF("##"+name+"下線了!");

?

?out.close();

?in.close();

?socket.close();

?

?} catch (Exception e2)

?{

?// TODO: handle exception

?}

?}

?flag = false;

?this.setVisible(false);

?}

}

//客戶端線程啟動後的動作

@Override

public void run()

{

?//循環執行 作用是壹直監聽服務器端是否有消息

?while(true)

?{

?try

?{

?//讀取服務器發送來的數據

?chat_in = in.readUTF();

?//將消息顯示在客戶端的對話窗口中

?jTextArea1.append(chat_in+"\n\n");

?} catch (Exception e)

?{

?// TODO: handle exception

?}

?

?}

}

}

運行結果

具體介紹請看java的? JDK 文檔

  • 上一篇:機器語言 匯編語言 偽代碼 c語言分別是指什麽
  • 下一篇:Unity 3D 物體旋轉放大。
  • copyright 2024編程學習大全網