📄 chatroomlistingwindow.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 + -