📄 selectorpanel.java
字号:
package boco.shabank.powermanager;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;import java.awt.GridBagLayout;import javax.swing.text.*;import javax.swing.border.*;import javax.swing.border.TitledBorder;import javax.swing.colorchooser.*;import javax.swing.filechooser.*;import javax.accessibility.*;import java.awt.datatransfer.*;import java.awt.dnd.*;import javax.swing.tree.*;import javax.swing.table.*;import boco.shabank.dbconnection.*;import boco.shabank.dbmanager.*;import boco.shabank.dbmanager.ChineseTransfer;public class SelectorPanel extends JPanel{ //定义容器 protected SelectorListModel unselectedModel; protected SelectorListModel selectedModel; protected JList unselectedList;//非组用户 protected JList selectedList;//组用户 protected JTree groupTree;//组列表框 protected JScrollPane jsp_group; protected JTable userTable; protected JTable modTable; protected JScrollPane jsp_user; protected JScrollPane jsp_mod; protected JToolBar navToolBar = new JToolBar(); protected JViewport jvp; //定义按钮 protected JButton firstButton; protected JButton priorButton; protected JButton nextButton; protected JButton lastButton; protected JButton insertButton; protected JButton deleteButton; protected JButton dittoButton; protected JButton saveButton; protected JButton refreshButton; protected JButton addSelections; protected JButton addAll; protected JButton removeSelections; protected JButton removeAll; private Border emptyButtonBorder; private Border normalButtonBorder; private int orientation=0; private boolean showRollover=true; private boolean showTooltips=true; //字符转换 protected ChineseTransfer ct; protected PowerManager pm ;//权限管理bean protected String groupname; protected String grouppower; protected TableValuesUser tvu;//用户列表模板 protected TableValuesMod tvm;//权限块列表模块 protected int rowSel_tuser=0;//userTable当前行 protected int colSel_tuser=0;//userTable当前列 protected int rowCount_tuser=0;//userTable总行数 protected int colCount_tuser=0;//userTable总列数 protected int oldrow=0;//上一次选中的行 protected int oldcol=0;//上一次选中的列 protected int rowSel_tmod=0;//modTable当前行 protected int colSel_tmod=0;//modTable当前列 protected int rowCount_tmod=0;//modTable总行数 protected int colCount_tmod=0;//modTable总列数 protected int viewHigh=0; protected int rowSel; protected String keyvalue="";//主键值 protected String oldvalue; protected String newvalue; protected String errMsg;//错误返回信息 static Frame getFrame(Component c) { while((c = c.getParent()) != null) { if(c instanceof Frame) return (Frame)c; } return null; } //构造函数1 public SelectorPanel(Object[] values,int[] selections) { super(); ct = new ChineseTransfer(); pm = new PowerManager(); unselectedModel = new SelectorListModel(null); selectedModel = new SelectorListModel(values); if(selections!=null){ selectedModel.takeEntriesFrom(unselectedModel,selections,"") ; } buildLayout(); } //构造函数2 public SelectorPanel(Object[] values){ this(values,null); } // 构造函数3 public SelectorPanel(){ super(); ct = new ChineseTransfer(); pm = new PowerManager(); pm.getAllPowerUser() ;//取所有用户信息 pm.vGetUsrGrpId() ;//取用户sign unselectedModel = new SelectorListModel(pm.vGetUsrSign().toArray());//非组用户Listmode selectedModel = new SelectorListModel(null);//组用户Listmode buildLayout();//布局 } //*********************************************************** //组键布局 //********************************************************** protected void buildLayout(){ SelectionListener listener = new SelectionListener(); setLayout(null); //定义组显示列表 pm.getAllPowerGroup() ;//取用户组信息 groupTree = new JTree(pm.vGetGrpName());//组树 groupTree.setRootVisible(false) ; TreeNodeEditor editor=new TreeNodeEditor(new JTextField()); groupTree.setCellEditor(new defaultTreeEditor(groupTree,(DefaultTreeCellRenderer)groupTree.getCellRenderer(),editor)); groupTree.setEditable(true) ; jsp_group = new JScrollPane(groupTree);//组容器 jsp_group.setBounds(new Rectangle(5,5,140,220)); jsp_group.setBorder(new TitledBorder("用户组")); //jsp_grop.addMouseListener() ; groupTree.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { jspgroup_mousePressed(e); } }); add(jsp_group); //定义组成员列表 selectedList = new JList(selectedModel); selectedList.addListSelectionListener(listener) ; JScrollPane jsp = new JScrollPane(selectedList);//组成员容器 jsp.setBounds(new Rectangle(160,5,100,220)); jsp.setBorder(new TitledBorder("组用户")); add(jsp); //加载按钮 add(getButtonPanel(),BorderLayout.CENTER);//添加删除用户按钮 //非组成员列表 unselectedList = new JList(unselectedModel); unselectedList.addListSelectionListener(listener) ; JScrollPane jsp1 = new JScrollPane(unselectedList);//非组成员容器 jsp1.setBounds(new Rectangle(310,5,100,220)); jsp1.setBorder(new TitledBorder("用 户")); //增加鼠标事件 unselectedList.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { user_mousePressed(e); } }); add(jsp1); //用户属性表 tvu=new TableValuesUser(); TableSorter sorter=new TableSorter(); sorter.setModel(tvu); userTable = new JTable(sorter); userTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); userTable.getColumnModel().getColumn(0).setPreferredWidth(40); userTable.getColumnModel().getColumn(1).setPreferredWidth(40); userTable.getColumnModel().getColumn(2).setPreferredWidth(60); userTable.getColumnModel().getColumn(3).setPreferredWidth(120); userTable.getColumnModel().getColumn(4).setPreferredWidth(70); userTable.getColumnModel().getColumn(5).setPreferredWidth(150); userTable.getColumnModel().getColumn(6).setPreferredWidth(150); userTable.setAutoscrolls(true); sorter.addMouseListenerToHeaderInTable(userTable); jsp_user = new JScrollPane(userTable); JViewport jvp = new JViewport(); jvp.setView(new RowNumberHeader(userTable)) ; jsp_user.setRowHeader(jvp) ; jsp_user.setBounds(new Rectangle(412,5,380,220)); jsp_user.setBorder(new TitledBorder("用户列表")); jsp_user.setAutoscrolls(true); jsp_user.setVerticalScrollBarPolicy(jsp_user.VERTICAL_SCROLLBAR_ALWAYS); jsp_user.setHorizontalScrollBarPolicy(jsp_user.HORIZONTAL_SCROLLBAR_ALWAYS); //table监听 userTable.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent etm){ userTable_mouseClicked(etm); } }); add(jsp_user); //ToolBar navToolBar.setFloatable(false); navToolBar.setLayout(new FlowLayout()); navToolBar.setBounds(new Rectangle(10, 230, 790, 35)); initButtons(navToolBar); setShowRollover(!"Mac".equals(UIManager.getLookAndFeel().getID())); setShowTooltips(true); add(navToolBar); //权限模块列表 tvm=new TableValuesMod(); TableSorter sorterMod=new TableSorter(); sorterMod.setModel(tvm); modTable = new JTable(sorterMod); modTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //设置单元格宽度 modTable.getColumnModel().getColumn(0).setPreferredWidth(60); modTable.getColumnModel().getColumn(1).setPreferredWidth(200); modTable.getColumnModel().getColumn(2).setPreferredWidth(200); modTable.getColumnModel().getColumn(3).setPreferredWidth(200); modTable.getColumnModel().getColumn(4).setPreferredWidth(80); modTable.setAutoscrolls(true); sorterMod.addMouseListenerToHeaderInTable(modTable);//排序监听 jsp_mod = new JScrollPane(modTable); setPower(modTable.getColumnModel().getColumn(4));//设置ComboBox JViewport jvp_mod = new JViewport();//视点 jvp_mod.setView(new RowNumberHeader(modTable)) ; jsp_mod.setRowHeader(jvp_mod) ; jsp_mod.setBounds(new Rectangle(5,270,785,270)); jsp_mod.setAutoscrolls(true); jsp_mod.setVerticalScrollBarPolicy(jsp_mod.VERTICAL_SCROLLBAR_ALWAYS); jsp_mod.setHorizontalScrollBarPolicy(jsp_mod.HORIZONTAL_SCROLLBAR_ALWAYS); modTable.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent etm){ modTable_mouseClicked(etm); } }); add(jsp_mod); addButtonListeners(); enableButtons();//按钮状态控制 } //———————————————————————————————————————————————————————————————————————————————— //***************************************************************************** //设置权限ComboBox //**************************************************************************** public void setPower(TableColumn powerColumn) { JComboBox comboBox = new JComboBox(); comboBox.addItem("没有权限"); comboBox.addItem("读权限"); comboBox.addItem("写权限"); comboBox.addItem("所有权限"); powerColumn.setCellEditor(new DefaultCellEditor(comboBox)); //Set up tool tips for the sport cells. DefaultTableCellRenderer renderer =new DefaultTableCellRenderer(); renderer.setToolTipText("点击选择权限"); powerColumn.setCellRenderer(renderer); //Set up tool tip for the sport column header. TableCellRenderer headerRenderer = powerColumn.getHeaderRenderer(); if (headerRenderer instanceof DefaultTableCellRenderer) { ((DefaultTableCellRenderer)headerRenderer).setToolTipText("点击选择权限"); } /*comboBox.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent e){ modTable_mouseClicked(e); modTable.setRowSelectionInterval(rowSel_tmod,rowSel_tmod); } }); */ } //—————————————————————————————————————————————————————————————————————————————————— //********************************************************************************** //功能按钮显示 //********************************************************************************** public void setShowRollover(boolean showRollover){ if("Mac".equals(UIManager.getLookAndFeel().getID())) showRollover=false; this.showRollover = showRollover; if(showRollover){ //移到第一行键点击响应 firstButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent efirst){ firstButton_mouseClicked(efirst); } }); //移到前一行键点击响应 priorButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent eprior){ priorButton_mouseClicked(eprior); } }); //移到下一行键点击响应 nextButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent enext){ nextButton_mouseClicked(enext); } }); //移到最后一行键点击响应 lastButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent elast){ lastButton_mouseClicked(elast); } }); //增加一行键点击响应 insertButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent einsert){ insertButton_mouseClicked(einsert); } }); //删除键点击响应 deleteButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent edelete){ deleteButton_mouseClicked(edelete); } }); //拷贝当前行: dittoButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent editto){ dittoButton_mouseClicked(editto); } }); //保存键点击响应
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -