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