代码如下:(请大家帮忙解决一个问题:就是当我双击右边的tree的时候,就会出现排版偏移,恳请大家帮忙看看这个怎么解决)import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.*;public class Work
{
public static void main(String[] args)
{
  JFrame frame = new JFrame ("成绩统计系统");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);      JukeBoxControls controlPanel = new JukeBoxControls();      frame.getContentPane().add(controlPanel);
      frame.pack();
      frame.setVisible(true);
}
}
class JukeBoxControls extends JPanel
{
   private JComboBox Combo;
   private JPanel panel;
   private JPanel[] d;
   
   public JukeBoxControls()
   {
      JLabel titleLabel = new JLabel ("系别");
      titleLabel.setAlignmentX (Component.CENTER_ALIGNMENT);      String[] Names = {"Make A Selection...", "计算机与通信系",
                "机械系", "土木工程系", "电气系",
               "外国语系","人文社科系"};      Combo = new JComboBox (Names);
      Combo.setAlignmentX (Component.CENTER_ALIGNMENT);
      Combo.setBounds(20,20,50,10);
      
      JPanel p=new JPanel();
      p.setBackground (Color.cyan);
      p.setLayout (new BoxLayout (p, BoxLayout.Y_AXIS));
      p.add (Box.createRigidArea (new Dimension(0,5)));
      p.add (titleLabel);
      p.add (Box.createRigidArea (new Dimension(0,5)));
      p.add (Combo);
      p.add (Box.createRigidArea (new Dimension(0,250)));
      
      panel=new JPanel();
      panel.setBackground(Color.cyan);
      tree t=new tree();
      panel.add(t);
      
      JSplitPane sp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,p,panel);
      add(sp);
   }
   private class ComboListener implements ActionListener
   {
      public void actionPerformed (ActionEvent event)
      {
        int a = Combo.getSelectedIndex();
        if(a==1)
        {
         Computer c=new Computer();
        
         panel.add(c);
        }
      }
    }
}
class Computer extends JPanel
{
private JCheckBox jcb1,jcb2,jcb3,jcb4,jcb5;
private JLabel lc;
double count;
public Computer()
{
jcb1=new JCheckBox("英语演讲比赛一等奖");
jcb1.setBackground(Color.cyan);

jcb2=new JCheckBox("英语演讲比赛二等奖");
jcb2.setBackground(Color.cyan);

jcb3=new JCheckBox("英语演讲比赛三等奖");
jcb3.setBackground(Color.cyan);

jcb4=new JCheckBox("计算机二级");
jcb4.setBackground(Color.cyan);

jcb5=new JCheckBox("班委或协会干事");
jcb5.setBackground(Color.cyan);

lc=new JLabel("else :");
JTextField jtc=new JTextField();


setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
setBackground(Color.cyan);

add(jcb1);
add(Box.createRigidArea(new Dimension(0,10)));

add(jcb2);
add(Box.createRigidArea(new Dimension(0,10)));

add(jcb3);
add(Box.createRigidArea(new Dimension(0,10)));

add(jcb4);
add(Box.createRigidArea(new Dimension(0,10)));

add(jcb5);
add(Box.createRigidArea(new Dimension(0,10)));

add(lc);
add(jtc);
}
}
class tree extends JPanel implements TreeSelectionListener
{
JTree option;
JTextField tf=new JTextField(20);;
public tree()
{
String[] kind={"类别","科技类,学科竞赛类","班委或社团类","体育竞赛类","文化艺术类","学生干部类",
"英语,计算机等级考试","德育考核类","参加活动","早操出勤","集体活动","宿舍管理",
"先进集体","英语四级","计算机二级","国家级","省部级","校级","系级"};
DefaultMutableTreeNode root=new DefaultMutableTreeNode(kind[0]);
DefaultMutableTreeNode node1=new DefaultMutableTreeNode(kind[1]);
DefaultMutableTreeNode node2=new DefaultMutableTreeNode(kind[2]);
DefaultMutableTreeNode node3=new DefaultMutableTreeNode(kind[3]);
DefaultMutableTreeNode node4=new DefaultMutableTreeNode(kind[4]);
DefaultMutableTreeNode node5=new DefaultMutableTreeNode(kind[5]);
DefaultMutableTreeNode node6=new DefaultMutableTreeNode(kind[6]);
DefaultMutableTreeNode node7=new DefaultMutableTreeNode(kind[7]);
DefaultMutableTreeNode node7_1=new DefaultMutableTreeNode(kind[8]);
DefaultMutableTreeNode node7_2=new DefaultMutableTreeNode(kind[9]);
DefaultMutableTreeNode node7_3=new DefaultMutableTreeNode(kind[10]);
DefaultMutableTreeNode node7_4=new DefaultMutableTreeNode(kind[11]);
DefaultMutableTreeNode node7_5=new DefaultMutableTreeNode(kind[12]);
DefaultMutableTreeNode node6_1=new DefaultMutableTreeNode(kind[13]);
DefaultMutableTreeNode node6_2=new DefaultMutableTreeNode(kind[14]);
DefaultMutableTreeNode node1_1=new DefaultMutableTreeNode(kind[15]);
DefaultMutableTreeNode node1_2=new DefaultMutableTreeNode(kind[16]);
DefaultMutableTreeNode node1_3=new DefaultMutableTreeNode(kind[17]);
DefaultMutableTreeNode node1_4=new DefaultMutableTreeNode(kind[18]);



root.add(node1);
root.add(node2);
root.add(node3);
root.add(node4);
root.add(node5);
root.add(node6);
root.add(node7);

node1.add(node1_1);
node1.add(node1_2);
node1.add(node1_3);
node1.add(node1_4);
node6.add(node6_1);
node6.add(node6_2);
node7.add(node7_1);
node7.add(node7_2);
node7.add(node7_3);
node7.add(node7_4);
node7.add(node7_5);

option=new JTree(root);
option.addTreeSelectionListener(this);
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
add(Box.createRigidArea(new Dimension(0,20)));
add(option);
add(tf);
setBackground(Color.cyan);


}
public void valueChanged(TreeSelectionEvent event) 
{
String s = "";
JLabel info;
DefaultMutableTreeNode node=(DefaultMutableTreeNode)option.getLastSelectedPathComponent();
if(node!=null && !node.equals(""))
s=node.toString();
if(node!=null && !node.equals("") && node.isLeaf())
{
s+=" : "+tf.getText();
info=new JLabel(s);
add(info);
}
}