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

📄 chatroomlistingwindow.java

📁 是一款国外的网络游戏平台的源码*不是类似浩方那种虚拟局域网技术
💻 JAVA
字号:
/*
 * Created on Jan 3, 2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.GTADS.client;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Vector;

import javax.swing.BoxLayout;
import javax.swing.ScrollPaneConstants;

import org.GTADS.client.swing.GTADSFrame;
import org.GTADS.messenger.MessageAdapter;
import org.GTADS.protocol.MetaData;
import org.GTADS.usermanager.TranslateManager;
import org.GTADS.client.swing.*;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class ChatroomListingWindow extends GTADSFrame implements ActionListener, MouseListener, KeyListener{
	private static ChatroomListingWindow instance;
	private TranslateManager locale = TranslateManager.getInstance();
	private GTADSList chatroomList = new GTADSList();
	private GTADSScrollPane chatroomListScroll = new GTADSScrollPane();
	private GTADSButton refreshButton = new GTADSButton(locale.printLocale("Refresh"));
	private GTADSButton joinButton = new GTADSButton(locale.printLocale("Join"));
	private GTADSLabel searchCaption = new GTADSLabel(locale.printLocale("Search") + ": ");
	private GTADSTextField searchField = new GTADSTextField();
	private GTADSLabel numberOfUsers = new GTADSLabel();
	private GTADSLabel numberOfUsersCaption = new GTADSLabel(locale.printLocale("Users")+ ": ");
	private Vector chatroomVector = new Vector();
	private Vector chatroomDisplayVector = new Vector();
	private Hashtable chatroomSize = new Hashtable();
	
	public static ChatroomListingWindow getInstance(){
		if (instance == null){
			instance = new ChatroomListingWindow();
		}
		return instance;
	}
	
	public static void clearInstance(){
		if (instance != null){
			instance.hide();
			instance.dispose();
			instance = null;
		}	
	}
	
	public ChatroomListingWindow(){
		init();
		
	}
	
	private void init(){
		this.setResizable(false);
		GTADSPanel mainPanel = new GTADSPanel();
		GTADSPanel panel1 = new GTADSPanel();
		GTADSPanel searchPanel = new GTADSPanel();
		GTADSPanel panel2 = new GTADSPanel();
		GTADSPanel panel3 = new GTADSPanel();
		GTADSPanel panel4 = new GTADSPanel();
		
		this.setContentPane(mainPanel);
		
		mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
		panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
		searchPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
		panel2.setLayout(new FlowLayout(FlowLayout.CENTER));
		panel3.setLayout(new FlowLayout(FlowLayout.CENTER));
		panel4.setLayout(new FlowLayout(FlowLayout.RIGHT));
		
		setUpComponents();
		
		panel1.add(new GTADSLabel(locale.printLocale("Chatroom List")));
		searchPanel.add(searchCaption);
		searchPanel.add(searchField);
		panel2.add(chatroomListScroll);
		panel3.add(refreshButton);
		panel3.add(joinButton);
		panel4.add(numberOfUsersCaption);
		panel4.add(numberOfUsers);
		
		mainPanel.add(panel1);
		mainPanel.add(searchPanel);
		mainPanel.add(panel2);
		mainPanel.add(panel3);
		mainPanel.add(panel4);

		refreshButton.addActionListener(this);
		joinButton.addActionListener(this);
		
		pack();
	}
	
	private void setUpComponents(){
		searchField.setColumns(15);
		searchField.addKeyListener(this);
		chatroomList.setPrototypeCellValue("#################################");
		chatroomList.setVisibleRowCount(10);
		
		chatroomListScroll = new GTADSScrollPane(chatroomList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
				ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		chatroomListScroll.setAutoscrolls(true);
		chatroomList.addMouseListener(this);
	}
	
	public void addChatroomToList(String chatroomString){
		int selectedPlace = chatroomList.getSelectedIndex();
		String chatroomName = new String();
		String[] chatroomData = new String[2];
		chatroomData = chatroomString.split(":");
		chatroomName = chatroomData[0];
		
		chatroomSize.put(chatroomName, chatroomData[1]);
		chatroomVector.add(chatroomName);
		searchChatList(searchField.getText());
		chatroomList.setListData(chatroomDisplayVector);
		chatroomList.setSelectedIndex(selectedPlace);
	}
	
	public void clearChatroomList(){
		int selectedPlace = chatroomList.getSelectedIndex();
		chatroomSize.clear();
		numberOfUsers.setText("");
		chatroomVector = new Vector();
		chatroomDisplayVector = new Vector();
		chatroomList.setListData(chatroomDisplayVector);
		chatroomList.setSelectedIndex(selectedPlace);
	}
	
	public void searchChatList(String searchString){
		if (!searchString.equals("")){
			if (!searchString.startsWith("#")){
				searchString = "#" + searchString;
			}
			chatroomDisplayVector.clear();
			for (int i = 0; i < chatroomVector.size(); i++){
				String comparativeString = (String)chatroomVector.get(i);
				int score = 0;
				String shorterString = searchString.length() > comparativeString.length() ? comparativeString : searchString;
				for (int j = 1; j < shorterString.length(); j++){
					if (searchString.charAt(j) == comparativeString.charAt(j)){
						score++;
					}
				}
				if (score >= 1)
					chatroomDisplayVector.add(chatroomVector.get(i));
			}
		}
		else {
			chatroomDisplayVector = (Vector)chatroomVector.clone();
		}
	}
	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent evt) {
		try {
			if (evt.getSource().equals(refreshButton)){
				refreshChatroomList();
			}
			else if (evt.getSource().equals(joinButton)){
				if (chatroomList.getSelectedValue() != null) {
				ChatWindowDialog.getInstance().joinChatroom((String)chatroomList.getSelectedValue(), 
						ChatWindowDialog.getInstance().chatroomName);
				}
			}
		} catch (IOException ioe) {
			
		}
	}
	
	public void refreshChatroomList() throws IOException{
		clearChatroomList();
		MetaData getChatroomHeader = new MetaData(DSChatClient.clientUser.getUsername(),
				MetaData.GENERIC, MetaData.SEND_CHATROOM_LIST);
		MessageAdapter.sendData(null,DSChatClient.ClientSocket,getChatroomHeader,"NULL");
	}
	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
	 */
	public void mouseClicked(MouseEvent evt) {
		String chatroomName = (String)chatroomList.getSelectedValue();
		String usersInChatroom = (String)chatroomSize.get(chatroomName);
		numberOfUsers.setText(usersInChatroom);

	}
	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
	 */
	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}
	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
	 */
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}
	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
	 */
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}
	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
	 */
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}
	/* (non-Javadoc)
	 * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
	 */
	public void keyPressed(KeyEvent evt) {
	}
	/* (non-Javadoc)
	 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
	 */
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		searchChatList(searchField.getText());
		chatroomList.setListData(new Vector());
		chatroomList.setListData(chatroomDisplayVector);

	}
	/* (non-Javadoc)
	 * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
	 */
	public void keyTyped(KeyEvent evt) {
		//if (evt.getSource().equals(searchField)){

		//}
	}
}

⌨️ 快捷键说明

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