我想设计个FRAME就如同网页一样,当你点击左边的按钮的时候,右边白色区域,就能显示相应的功能或信息.多谢了!!!!!!!!!!!!!!!!!!!!!!就如同框架网页一样? 

解决方案 »

  1.   


    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JSplitPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.TreePath;public class CSDN extends JFrame{
    JLabel labelA;
    JLabel labelB;
    JLabel labelC;
    JSplitPane split;

    public CSDN(){
    super();
    labelA = new JLabel("A.html");
    labelA.setOpaque(true);
    labelA.setBackground(Color.WHITE);
    labelB = new JLabel("B.html");
    labelB.setOpaque(true);
    labelB.setBackground(Color.WHITE);
    labelC = new JLabel("C.html");
    labelC.setOpaque(true);
    labelC.setBackground(Color.WHITE);

    split = new JSplitPane();
    split.setLeftComponent(getTree());

    split.setRightComponent(labelA);

    split.setDividerSize(5);
    getContentPane().add(split);
    setSize(600, 600);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    JTree tree;

    private JTree getTree(){

    DefaultMutableTreeNode root = new DefaultMutableTreeNode("功能节点");
    DefaultMutableTreeNode folder = new DefaultMutableTreeNode("网页");
    DefaultMutableTreeNode htmlA = new DefaultMutableTreeNode("A.html");
    DefaultMutableTreeNode htmlB = new DefaultMutableTreeNode("B.html");
    DefaultMutableTreeNode htmlC = new DefaultMutableTreeNode("C.html");

    folder.add(htmlA);
    folder.add(htmlB);
    folder.add(htmlC);
    root.add(folder);
    tree = new JTree(root);
    tree.addMouseListener(new MouseAdapter(){
    public void mousePressed(MouseEvent e) {
             int selRow = tree.getRowForLocation(e.getX(), e.getY());
             if(selRow != -1){
              TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
              String htmlStr = selPath.getLastPathComponent().toString();
              if(htmlStr.equals("A.html")){
              split.setRightComponent(labelA);
              }
              if(htmlStr.equals("B.html")){
              split.setRightComponent(labelB);
              }
              if(htmlStr.equals("C.html")){
              split.setRightComponent(labelC);
              }
             }
    }
    });
    tree.setPreferredSize(new Dimension(200,100));
    return tree;
    }

    public static void main(String[] args){
    CSDN c = new CSDN();
    }
    }