亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chatwindow.java

?? 用JAVA實(shí)現(xiàn)的ICHAT源代碼!希望對(duì)大家有用!
?? JAVA
字號(hào):
/*
 * @(#)ChatWindow.java
 * Created on 2005-9-12
 * iChat LE. Copyright AllenStudio. All Rights Reserved
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
package ui;

import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.io.File;

import javax.media.Manager;
import javax.media.Player;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

import core.ConnectionModel;
import core.MessageListener;

/**
 * Actual implementation for a chat client.
 * 
 * @author Allen Chue
 */
public class ChatWindow extends JFrame implements MessageListener {
	
	public static void main(String[] args) throws Exception {
 //           ChatWindow win=new ChatWindow("127.0.0.1","127.0.0.1");
		Player player = Manager.createPlayer(new File("msg.wav").toURL());
		player.start();
		
	    Thread.sleep(5000);
	    System.exit(0);
	}
	
    private static final long serialVersionUID = 11111111;
    

    public static final int MAX_WAITING_TIME = 10000;
    
        
    private ConnectionModel manager;
    
    private JPanel jContentPane = null;
    private JScrollPane messageBoxWrapper = null;
    private JTextArea messageBox = null;
    private JScrollPane inputBoxWrapper = null;
    private JTextArea inputBox = null;
    private JPanel bottomPanel = null;
    private JButton sendButton = null;
    
    private String selfName, friendName;
    
    private Player remindPlayer = null;
    
    /**
     * This is the default constructor
     */
    public ChatWindow(String selfName, String friendName) {
        super();
        
        this.selfName = selfName;
        this.friendName = friendName;
            
        initialize();
    }

    /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() {
        this.setSize(400, 278);
        this.setLocation(new java.awt.Point(300,400));
        this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        this.setContentPane(getJContentPane());
        this.setTitle("iChat LE - "+ UIResources.getString("window.title") + friendName);
        
        manager = ConnectionModel.getInstance();
        manager.addMessageListener(this);
        
		this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/ui/resources/icon.gif")));
		
		try {
			remindPlayer = Manager.createPlayer(
					new File(UIResources.getString("window.remindSound")).toURL());
		} catch (Exception e) {
			e.printStackTrace();
		}
    }

    /**
     * This method initializes jContentPane
     * 
     * @return javax.swing.JPanel
     */
    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jContentPane = new JPanel();
            jContentPane.setLayout(new BorderLayout());
            jContentPane.add(getMessageBoxWrapper(), java.awt.BorderLayout.CENTER);
            jContentPane.add(getBottomPanel(), java.awt.BorderLayout.SOUTH);
        }
        return jContentPane;
    }

    /**
     * This method initializes messageBoxWrapper	
     * 	
     * @return javax.swing.JScrollPane	
     */
    private JScrollPane getMessageBoxWrapper() {
        if (messageBoxWrapper == null) {
            messageBoxWrapper = new JScrollPane();
            messageBoxWrapper.setViewportView(getMessageBox());
        }
        return messageBoxWrapper;
    }

    /**
     * This method initializes messageBox	
     * 	
     * @return javax.swing.JTextArea	
     */
    private JTextArea getMessageBox() {
        if (messageBox == null) {
            messageBox = new JTextArea();
            messageBox.setColumns(32);
            messageBox.setEditable(false);
            messageBox.setRows(8);
        }
        return messageBox;
    }

    /**
     * This method initializes inputBox	
     * 	
     * @return javax.swing.JScrollPane	
     */
    private JScrollPane getInputBoxWrapper() {
        if (inputBoxWrapper == null) {
            inputBoxWrapper = new JScrollPane();
            inputBoxWrapper.setViewportView(getInputBox());
        }
        return inputBoxWrapper;
    }

    /**
     * This method initializes inputBox	
     * 	
     * @return javax.swing.JTextArea	
     */
    private JTextArea getInputBox() {
        if (inputBox == null) {
            inputBox = new JTextArea();
            inputBox.setColumns(28);
            inputBox.setRows(4);

            inputBox.getDocument().addDocumentListener(
            		new DocumentListener() {

						public void insertUpdate(DocumentEvent e) {
							updateSendButton();							
						}

						public void removeUpdate(DocumentEvent e) {
							updateSendButton();
						}

						public void changedUpdate(DocumentEvent e) {
							updateSendButton();
						}
            			
            		});
            inputBox.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyTyped(java.awt.event.KeyEvent e) {
                    if ((e.getKeyChar() == KeyEvent.VK_ENTER) &&
                            (e.getModifiers() == KeyEvent.CTRL_MASK)) {
                        sendMessage();
                    }
                }
            });
        }
        return inputBox;
    }

    /**
     * This method initializes bottomPanel	
     * 	
     * @return javax.swing.JPanel	
     */
    private JPanel getBottomPanel() {
        if (bottomPanel == null) {
            bottomPanel = new JPanel();
            bottomPanel.setLayout(new BorderLayout());
            bottomPanel.add(getInputBoxWrapper(), java.awt.BorderLayout.CENTER);
            bottomPanel.add(getSendButton(), java.awt.BorderLayout.EAST);
        }
        return bottomPanel;
    }

    /**
     * This method initializes sendButton	
     * 	
     * @return javax.swing.JButton	
     */
    private JButton getSendButton() {
        if (sendButton == null) {
            sendButton = new JButton();
            sendButton.setEnabled(false);
            sendButton.setText(UIResources.getString("window.sendButton"));
            sendButton.setMnemonic(java.awt.event.KeyEvent.VK_S);
            sendButton.addActionListener(new java.awt.event.ActionListener() {   
            	public void actionPerformed(java.awt.event.ActionEvent e) { 
            	    sendMessage();
            	}   
            
            
            });
        }
        return sendButton;
    }
    
    public void sendMessage() {
        manager.send(inputBox.getText());
        updateMessageBox(selfName, inputBox.getText());
        inputBox.setText("");
        
    }
    
    /**
     * Updates the <code>messageBox</code> with <code>
     * String</code> s. This version of method is used
     * after the user sends or receives a message.
     * @param name the name of whom the message is from
     * @param message the message either sent or received
     */
    private void updateMessageBox(String name, String message) {
        messageBox.append("\n" + name + UIResources.getString("window.say") +
                "\n" + message);//$NON-NLS-1$
        messageBox.setCaretPosition(messageBox.getDocument().getLength());
    }
    
    /**
     * Updates the button state according to whether inputBox's content
     * is emtpy.
     *
     */
    private void updateSendButton() {
    	sendButton.setEnabled(
    			inputBox.getDocument().getLength() == 0 ? false : true);
    }
    
    public void messageReceived(String message) {
    	remindPlayer.start();
        updateMessageBox(friendName, message);
    }
    
}  //  @jve:decl-index=0:visual-constraint="10,10"

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久电影| 5566中文字幕一区二区电影 | 91麻豆免费在线观看| 国产精品免费久久久久| 懂色av一区二区在线播放| 中文字幕av资源一区| 日本精品一级二级| 亚洲超碰精品一区二区| 精品国产一二三| 国产福利视频一区二区三区| 国产精品久久久久久久裸模| 91福利视频网站| 美国欧美日韩国产在线播放| 国产日韩欧美精品在线| 欧洲生活片亚洲生活在线观看| 亚洲国产日韩精品| 欧美tickling挠脚心丨vk| 成人久久视频在线观看| 午夜精品一区二区三区免费视频 | 日韩欧美三级在线| 国产成人综合在线| 一区二区三区美女视频| 精品国产乱码久久久久久夜甘婷婷 | 成人黄页在线观看| 亚洲韩国精品一区| 久久一区二区三区国产精品| 91理论电影在线观看| 水野朝阳av一区二区三区| 久久久精品国产免大香伊| 91国内精品野花午夜精品| 激情综合色播激情啊| 亚洲精选一二三| 国产夜色精品一区二区av| 欧美性受极品xxxx喷水| 激情偷乱视频一区二区三区| 亚洲最新视频在线观看| 久久精品水蜜桃av综合天堂| 欧美久久久久久久久中文字幕| 国产精品一二三在| 日本不卡在线视频| 国产精品美女久久久久aⅴ| 5858s免费视频成人| 91麻豆国产自产在线观看| 精品中文字幕一区二区小辣椒| 亚洲免费电影在线| 久久久久久99精品| 日韩一区二区三区在线观看| 在线视频欧美区| 高清国产一区二区| 麻豆国产欧美一区二区三区| 亚洲线精品一区二区三区八戒| 欧美激情在线一区二区三区| 精品久久久影院| 91精品国产福利| 欧美自拍偷拍午夜视频| 成人涩涩免费视频| 国产九九视频一区二区三区| 麻豆精品在线视频| 日韩av网站在线观看| 亚洲一区二区三区四区在线观看 | 不卡的电影网站| 国模冰冰炮一区二区| 日韩电影在线观看网站| 亚洲图片自拍偷拍| 亚洲免费在线电影| 国产精品嫩草99a| 精品成人佐山爱一区二区| 日韩视频在线永久播放| 欧美日韩国产一二三| 欧美这里有精品| 一本久久a久久精品亚洲| 99re这里只有精品6| 99久久精品免费看国产 | 在线欧美日韩精品| 色婷婷综合久久久中文一区二区| 99久久伊人精品| 成人av午夜影院| 99久久精品国产毛片| www.日韩精品| 色婷婷久久久综合中文字幕 | 欧美日韩中文字幕精品| 在线视频你懂得一区| 精品视频免费在线| 欧美一区二区三区视频免费| 欧美人与z0zoxxxx视频| 6080yy午夜一二三区久久| 日韩一级视频免费观看在线| 26uuu亚洲综合色欧美| 久久久综合视频| 欧美韩国日本不卡| 亚洲日本青草视频在线怡红院 | 欧美三级视频在线观看| 欧美日韩三级一区二区| 日韩精品一区二区在线| 国产偷国产偷精品高清尤物| 中文字幕亚洲成人| 亚洲福利一区二区三区| 精品在线观看视频| 波多野结衣欧美| 欧美性猛交xxxxxx富婆| 欧美一区二区三区喷汁尤物| 久久久久久久久久久久久女国产乱 | 亚洲欧美一区二区三区久本道91 | 欧美情侣在线播放| 日韩写真欧美这视频| 久久综合视频网| 亚洲欧美在线观看| 五月婷婷欧美视频| 国产精品一品二品| 欧亚一区二区三区| 精品国产一区二区三区四区四| 国产精品嫩草99a| 午夜精品久久久久久久久久久| 精品在线一区二区三区| av在线不卡免费看| 欧美精品乱码久久久久久按摩| 精品免费国产一区二区三区四区| 国产欧美一区在线| 亚洲va国产天堂va久久en| 国产一区二区三区不卡在线观看| 91在线云播放| 精品久久久久久久久久久院品网| ...中文天堂在线一区| 日韩在线观看一区二区| 高清久久久久久| 欧美一区二区三区性视频| 国产精品乱码久久久久久| 喷白浆一区二区| 91麻豆6部合集magnet| 久久久久国色av免费看影院| 亚洲第一电影网| jlzzjlzz亚洲日本少妇| 日韩午夜中文字幕| 一区二区在线免费| 国产成人亚洲综合色影视| 欧美日韩精品三区| 国产精品欧美久久久久无广告| 日韩电影在线一区二区| 色婷婷国产精品综合在线观看| 欧美电影免费观看完整版| 一区二区三区精品在线| 国产高清精品网站| 日韩欧美在线观看一区二区三区| 亚洲人快播电影网| 大美女一区二区三区| 日韩精品一区二区三区中文不卡| 亚洲一区二区三区国产| 成人黄色在线网站| 一区二区三区高清| 成人免费视频视频| www国产精品av| 久久精品国产成人一区二区三区| 欧美亚洲禁片免费| 一区二区三区在线观看动漫| 成人国产一区二区三区精品| 久久久一区二区三区捆绑**| 人人爽香蕉精品| 制服视频三区第一页精品| 亚洲18女电影在线观看| 欧美视频精品在线| 一区二区三区四区国产精品| 91蜜桃传媒精品久久久一区二区| 欧美国产激情一区二区三区蜜月| 韩国欧美国产1区| 欧美精品一区二区三区蜜臀| 九色综合狠狠综合久久| 精品日韩欧美在线| 精品中文字幕一区二区| 日韩免费电影一区| 国产在线精品国自产拍免费| 2020国产精品自拍| 国产成人精品亚洲午夜麻豆| 欧美国产97人人爽人人喊| 暴力调教一区二区三区| 中文字幕视频一区| 欧美在线不卡一区| 亚洲高清不卡在线观看| 91精品国产丝袜白色高跟鞋| 日本在线播放一区二区三区| 91精品国产入口| 国产一区二区在线视频| 国产精品毛片高清在线完整版| 国产91在线看| 亚洲欧美偷拍卡通变态| 在线观看亚洲专区| 日本欧美肥老太交大片| 久久嫩草精品久久久久| 99久久精品免费看国产免费软件| 一区二区三区丝袜| 欧美一级午夜免费电影| 韩国毛片一区二区三区| 中文字幕一区不卡| 欧美日韩精品高清| 久久福利视频一区二区| 中文字幕欧美国产| 在线观看视频一区| 精品一区二区三区久久| 亚洲欧洲三级电影| 91精品国产乱| 成人黄色777网|