@Override public void mouseClicked(MouseEvent event) { JTree tree = (JTree) event.getSource(); int x = event.getX(); int y = event.getY(); int row = tree.getRowForLocation(x, y); TreePath path = tree.getPathForRow(row); if (path != null) { CheckBoxTreeNode node = (CheckBoxTreeNode) path.getLastPathComponent(); if (node != null) { boolean isSelected = !node.isSelected(); node.setSelected(isSelected); ((DefaultTreeModel) tree.getModel()).nodeStructureChanged(node); } } }
@Override public void mouseClicked(MouseEvent event) { JTree tree = (JTree) event.getSource(); int x = event.getX(); int y = event.getY(); int row = tree.getRowForLocation(x, y); TreePath path = tree.getPathForRow(row); if (path != null) { CheckBoxTreeNode node = (CheckBoxTreeNode) path.getLastPathComponent(); if (node != null) { boolean isSelected = !node.isSelected(); node.setSelected(isSelected); ((DefaultTreeModel) tree.getModel()).nodeStructureChanged(node); } } // 查看整棵树的选择项 for (int i = 0; i < tree.getRowCount(); i++) { TreePath treePath = tree.getPathForRow(i); CheckBoxTreeNode treeNode = (CheckBoxTreeNode) treePath.getLastPathComponent(); if (treeNode.getUserObject() instanceof ServerConfigForModel) { if (treeNode.isSelected) { filter.setServerId(((ServerConfigForModel) treeNode.getUserObject()).getId()); } else { filter.removeServerId(((ServerConfigForModel) treeNode.getUserObject()).getId()); } } } filterOpcItem(); }
protected void initTree(List<OPCServerConnectConfig> serverConfigs) { CheckBoxTreeNode rootNode = new CheckBoxTreeNode("OPC Server"); for (OPCServerConnectConfig serverConfig : serverConfigs) { CheckBoxTreeNode node1 = new CheckBoxTreeNode( new ServerConfigForModel(serverConfig.getId(), serverConfig.getName())); CheckBoxTreeNode node1_1 = new CheckBoxTreeNode( new ServerConfigForModel(serverConfig.getId(), serverConfig.getGroupName())); node1.add(node1_1); rootNode.add(node1); } DefaultTreeModel treeModel = new DefaultTreeModel(rootNode); jTree1.setModel(treeModel); jTree1.addMouseListener(new CheckBoxTreeNodeSelectionListener()); jTree1.setCellRenderer(new CheckBoxTreeCellRenderer()); }
/** 生成树形结构 */ public void generateTree(List<FileLayoutVariableModel> getTreeList) { JTree tree = new JTree(); CheckBoxTreeNode rootNode = new CheckBoxTreeNode("全选"); for (int i = 0; i < getTreeList.size(); i++) { File file = new File(getTreeList.get(i).getFileName()); CheckBoxTreeNode subTree = new CheckBoxTreeNode(file.getName() + " 路径:" + file.getPath()); List<VariableDataModel> subList = getTreeList.get(i).getVariableList(); for (int j = 0; j < subList.size(); j++) { String temp = subList.get(j).getVariableType(); int tempIndex = temp.lastIndexOf("."); if (tempIndex != -1) { temp = temp.substring(tempIndex + 1, temp.length()); } CheckBoxTreeNode subTreeList = new CheckBoxTreeNode( "类型:" + temp + " 名称:" + subList.get(j).getVariableName()); subTree.add(subTreeList); } rootNode.add(subTree); } DefaultTreeModel treeModel = new DefaultTreeModel(rootNode); tree.addMouseListener(new CheckBoxTreeNodeSelectionListener()); tree.setModel(treeModel); // 展开一棵树 CommonMethod.expandAll(tree, new TreePath(tree.getModel().getRoot()), true); // 用来绘制checkbox tree.setCellRenderer(new CheckBoxTreeCellRenderer()); JScrollPane scroll = new JScrollPane(tree); scroll.setBounds(0, 0, 700, 500); add(scroll); JButton button = new JButton("确定"); button.setBounds(10, 520, 150, 30); button.addActionListener(new ClickListener(treeModel)); add(button); }
@Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub list = new ArrayList<RecordSelectedIndexModel>(); // 判断是否选中状态 boolean isChoose = false; CheckBoxTreeNode root = (CheckBoxTreeNode) model.getRoot(); for (int i = 0; i < root.getChildCount(); i++) { CheckBoxTreeNode second = (CheckBoxTreeNode) root.getChildAt(i); RecordSelectedIndexModel indexModel = new RecordSelectedIndexModel(); indexModel.setIndex(i); List<Integer> indexList = new ArrayList<Integer>(); for (int j = 0; j < second.getChildCount(); j++) { CheckBoxTreeNode third = (CheckBoxTreeNode) second.getChildAt(j); if (third.isSelected) { isChoose = true; indexList.add(j); } } indexModel.setSubListIndex(indexList); list.add(indexModel); } // 将数据输出到目标文件中 try { if (isChoose) { new SelectMethodListInterface( activityPath, codingType, list, getWidgetByXmlParser, modifierRadioButton, isListenerRadioButton); } else { common.showErrorMessage("请选择数据!"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }