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

📄 userlistdisplay.java

📁 一个实现网络会议的软件.包含三个包.其中一个包需JMF的支持.
💻 JAVA
字号:
package clientPackage;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.util.Enumeration;
import java.util.Hashtable;
import serverPackage.*;
import mediaPackage.*;
import javax.swing.*;
import javax.swing.table.*;
public class UserListDisplay extends JPanel{
	private JTable table;
	private Hashtable ht;
	private StockDataModel data;
	private JLabel title=new JLabel("Presenter",JLabel.CENTER);
	private JPanel panel=new JPanel();
	private JTextField text=new JTextField();
	private JTextField sum=new JTextField("This is a test");
	private JLabel usersTitle=new JLabel("Users",JLabel.CENTER);
	public UserListDisplay(Hashtable usersConfig, String myName) {
		panel.setLayout(new GridLayout(3,1));
		panel.add(title);
		panel.add(text);
		panel.add(usersTitle);
		text.setEditable(false);
		sum.setEditable(false);
		text.setBackground(Color.WHITE);
		sum.setBackground(Color.WHITE);
		setLayout(new BorderLayout());
		add(panel,BorderLayout.NORTH);
		add(sum,BorderLayout.SOUTH);
		table=new JTable();
		ht=usersConfig;
		//UserConfig user=new UserConfig();
//		ht.put("1",user);
	//	ht.put("2",user);
		//ht.put("3",user);
		data=new StockDataModel(ht);
		table.setAutoCreateColumnsFromModel(false);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
		table.setModel(data);
		table.setPreferredScrollableViewportSize(new Dimension(240,200));
		//table.setPreferredSize(new Dimension(240,200));
		for (int k=0;k<StockDataModel.columns.length;k++){
			DefaultTableCellRenderer renderer=new DefaultTableCellRenderer();
			renderer.setHorizontalAlignment(JLabel.CENTER);
			TableColumn column=new TableColumn(k,StockDataModel.columns[k].width,renderer,null);
			table.addColumn(column);
		}
		//table.setAutoscrolls(true);
		table.doLayout();
		JScrollPane s=new JScrollPane(table);
		add(s,BorderLayout.CENTER);
		this.displayUserPanel(usersConfig);
	}

	public boolean getMicAvailable() {
		// TODO Auto-generated method stub
		return false;
	}

	public void displayUserPanel(Hashtable usersConfig) {
		ht=usersConfig;
		Hashtable hash=new Hashtable();
		Enumeration e = ht.elements();
		int total=0;
		int yes=0;
		int no=0;
		int hands=0;
		String presenter=null;
		String InOut=null;
		while (e.hasMoreElements()){
			UserConfig uc=(UserConfig)e.nextElement();
			if (uc.getUserCategory()==Constants.USER){
				hash.put(uc.getUserName(),uc);
				total++;
				if (uc.getYesNo()==Constants.YES) yes++;
				else if (uc.getYesNo()==Constants.NO) no++;
				if (uc.getHandOrder()!=0) hands++;
			}
			else {
				presenter=uc.getUserName();
				if (uc.getUserPresent()) InOut="online";
				else InOut="out";
			}
		}
		if (presenter!=null) this.text.setText("The presenter is: "+presenter+"  He is "+InOut);
		else this.text.setText("No presenter now.");
		this.sum.setText("Total Users:"+String.valueOf(total)+" "+"Yes:"+String.valueOf(yes)+" "+"No:"+String.valueOf(no)+" "+"Hands:"+String.valueOf(hands));
		data.setData(hash);
		data.fireTableDataChanged();
	}

}

class StockDataModel extends AbstractTableModel{
	public static final ColumnData columns[]={
		new ColumnData("NAME",10),
		new ColumnData("INOUT",10),
		new ColumnData("MICRO",10),
		new ColumnData("YESNO",10),
		new ColumnData("ORDER",10)
	};
	private Hashtable ht;
	public StockDataModel(Hashtable ht){
		this.ht=ht;
	}
	public void setData(Hashtable ht){
		this.ht=ht;
	}
	public int getColumnCount() {
		// TODO Auto-generated method stub
		return columns.length;
	}

	public int getRowCount() {
		// TODO Auto-generated method stub
		return ht.size();
	}

	public Object getValueAt(int rowIndex, int columnIndex) {
		// TODO Auto-generated method stub
		if (ht.size()==0) return "";
		Enumeration e = ht.elements();
		int i=0;
		while (e.hasMoreElements()){
			UserConfig user=(UserConfig)e.nextElement();
			if (i==rowIndex){
				switch(columnIndex){
				case 0:return user.getUserName();
				case 1:return user.getUserPresent()?"In":"Out";
				case 2:return user.getMicAvailable()?"√":"";
				case 3:return (user.getYesNo()==Constants.YES)?"√":(user.getYesNo()==Constants.NO)?"×":"";
				case 4:return user.getHandOrder()==0?"":String.valueOf(user.getHandOrder());
				}
			}
			i++;
		}
		return "";
	}
	
	public String getColumnName(int col){
		return columns[col].title;
	}
	public boolean isCellEditable(int x,int y){
		return false;
	}
}

class ColumnData{
	public String title;
	public int width;
	
	public ColumnData(String title,int width){
		this.title=title;
		this.width=width;
	}
}

⌨️ 快捷键说明

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