java swing的一个简单问题
代码如下:(请大家帮忙解决一个问题:就是当我双击右边的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