哪位大侠用过JTaskPane这个新组件,有问题请赐教!~

解决方案 »

  1.   

    TaskPane有个TaskGroup可实现类似树的功能,它有像TREE中的TreePath类的功能吗?就是说 如何得到TaskGroup中各节点的路径!
      

  2.   

    先要确定的是TaskPane跟TaskPaneGroup是Container和Panel的关系,用TaskPaneGroup来实现的树形不是真正的Tree,他不存在Path路径的问题,他的Parent就是Container:TaskPane,你所指的节点的路径如果不是TaskPaneGroup的Title,确实要记录“路径”的话,只能用数据绑定的方式记录,如extends TaskPaneGroup,加上void setData(Object object) 和 Object getData()方法绑定Path.
      

  3.   

    代码如下:我想解决的问题是点击左侧TaskPane的“用户1”,右侧会出现对应的dataPanel这个Panel,希望大侠帮我在次代码基础上实现这个功能!
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import javax.swing.AbstractAction;
    import javax.swing.Action;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextField;
    import com.l2fprod.common.swing.JTaskPane;
    import com.l2fprod.common.swing.JTaskPaneGroup;public class TaskPane extends JFrame  {
    private JPanel mainPanel=new JPanel();
    private JSplitPane splitPane=new JSplitPane();
    private JTaskPane taskPane = new JTaskPane();
    private JTaskPaneGroup userGroup = new JTaskPaneGroup();
    private JTaskPaneGroup generalGroup = new JTaskPaneGroup();
    private JPanel dataPanel=new JPanel();
    private JPanel box3Panel=new JPanel();
    private  JPanel rightPanel=new JPanel();
    private JTextField datatext=new JTextField("用户1");
    private JButton newbutton=new JButton("用户2"); public TaskPane() throws Exception  {
     jbInit();
     openShow();
    }
    private void jbInit() {
    add(mainPanel,BorderLayout.CENTER);
    mainPanel.setLayout(new BorderLayout());
    mainPanel.add(splitPane,BorderLayout.CENTER);
    userGroup.setFont(new Font("", Font.BOLD, 14));
    userGroup.setTitle("用户");
    generalGroup.setFont(new Font("", Font.BOLD, 14));
    generalGroup.setTitle("常规");
    splitPane.setLeftComponent(taskPane);
    splitPane.setRightComponent(rightPanel);
    taskPane.add(userGroup);
    taskPane.add(generalGroup);
    userGroup.add(makeAction("用户1"));
    userGroup.add(makeAction("用户2"));
    userGroup.add(makeAction("用户3"));
    dataPanel.add(datatext);
    box3Panel.add(newbutton);
    }
     public JPanel currentPanel(Component component) {
        if (component == null) {
         rightPanel.removeAll();
         rightPanel.updateUI();
        }
        else {
         rightPanel.removeAll();
         rightPanel.setLayout(new BorderLayout());
         rightPanel.add(component, BorderLayout.CENTER);
         rightPanel.updateUI();
        }
        return rightPanel;
      }
     public void setControlPanel(String cmdStr) {
        if (cmdStr.equals("用户1")) {
          
         setCurrentPanel(dataPanel);
        }
        else if (cmdStr.equals("用户2")) {
        
         setCurrentPanel(box3Panel);
        }
     }
     Action makeAction(String title) {
          Action action = new AbstractAction(title) 
          {
            public void actionPerformed(ActionEvent e) {}
          };
          
          return action;
        }

     public void openShow() throws Exception{ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = getPreferredSize();
    frameSize.width=800;
    frameSize.height=600;
    setSize(frameSize);
    setLocation( ( (screenSize.width - frameSize.width) / 2),
    ( (screenSize.height - frameSize.height) / 2));
    super.setVisible(true);
    setTitle("TaskPane");
    }
    public static void main(String[] args) throws Exception {

        new TaskPane();
    }}