问题是:运行点击下拉列表的  画直线    然后正常的话应该出现所画的一条直线,但是现在的情况是
那条直线只是一闪而过,然后就不见了
但是如果在下拉列表中先点选其他的选项,在返回  画直线  就会正常显示,所以就感觉有点诡异,但有解决不了,所以请各位大虾帮帮忙了
import java.util.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class  Examplehuitu 

public static void main(String[] args)  

huitu hh=new huitu(); 

} class huitu extends JFrame implements ItemListener,ActionListener 

Container con; JComboBox list,list1,list2,list3,list4; 
JLabel label,label1,label2,label3,label4,label5,label6; 
Box box1,box2,box3,box4,box5,box6; 
String s1,s2,s3,s4,s5; 
JPanel panel1,panel2; 
JTextField text1,text2,text3,text4,text5; 
JButton button1,enter,close; 
JDialog dialog1; 
Graphics g; 
public huitu() 

box1=Box.createHorizontalBox(); 
box2=Box.createHorizontalBox(); 
box3=Box.createVerticalBox(); 
box4=Box.createHorizontalBox(); 
box5=Box.createHorizontalBox(); 
box6=Box.createVerticalBox(); text1=new JTextField(3); 
text2=new JTextField(5); 
text3=new JTextField(5); 
text4=new JTextField(5); 
text5=new JTextField(5); button1=new JButton("输入数据"); 
enter=new JButton("确定"); 
close=new JButton("关闭"); 
panel1=new JPanel(); 
panel1.setSize(500,600); 
panel1.validate(); 
panel1.setVisible(true); s1=new String("画直线"); 
s2=new String("画圆"); 
s3=new String("区域填充"); 
s4=new String("平移变换"); 
s5=new String("裁剪"); 
label=new JLabel("请选择:"); 
label1=new JLabel("线形"); 
label2=new JLabel("线宽"); 
label3=new JLabel("颜色"); 
label4=new JLabel("起点坐标"); 
label5=new JLabel("终点坐标"); 
list=new JComboBox(); 
list1=new JComboBox(); 
list2=new JComboBox(); 
list3=new JComboBox(); 
list4=new JComboBox(); 
//list.setMaximumRowCount(3); 
list.addItem("从以下选项中选择:"); 
list.addItem(s1); 
list.addItem(s2); 
list.addItem(s3); 
list.addItem(s4); 
list.addItem(s5); list1.addItem("虚线"); 
list1.addItem("实线"); 
list2.addItem("红色"); 
list2.addItem("黑色"); 
list2.addItem("蓝色"); 
list2.addItem("绿色"); 
list2.addItem("黄色"); 
list2.addItem("粉红"); 
list2.addItem("紫色"); 
list2.addItem("青色"); 
list2.addItem("深灰色"); 
list2.addItem("灰色"); 
list2.addItem("桔黄色"); 
box1.add(label); 
box1.add(Box.createHorizontalStrut(10)); 
box1.add(list); box2.add(label1); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(list1); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(label2); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(text1); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(label3); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(list2); 
box2.add(Box.createHorizontalStrut(5)); 
box2.add(button1); 
box2.setVisible(false); 
box3.add(box1); 
box3.add(Box.createVerticalStrut(5)); 
box3.add(box2); dialog1=new JDialog(this,"请输入相关数据",true); 
dialog1.setBounds(100,100,200,200); 
panel2=new JPanel(); 
panel2.setSize(200,200); 
box4.add(label4); 
box4.add(Box.createHorizontalStrut(5)); 
box4.add(text2); 
box4.add(Box.createHorizontalStrut(5)); 
box4.add(text3); 
box5.add(label5); 
box5.add(Box.createHorizontalStrut(5)); 
box5.add(text4); 
box5.add(Box.createHorizontalStrut(5)); 
box5.add(text5); 
box6.add(box4); 
box6.add(Box.createVerticalStrut(5)); 
box6.add(box5); 
panel2.add(box6); 
panel2.add(enter); 
panel2.add(close); 
dialog1.add(panel2); con=getContentPane(); 
con.setLayout(new BorderLayout()); 
g=panel1.getGraphics(); 
setSize(700,800); 
con.add(box3,BorderLayout.NORTH); 
con.add(panel1,BorderLayout.CENTER); 
setVisible(true); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
list.addItemListener(this); 
button1.addActionListener(this); 
validate(); } 
public void init1() 

g.drawLine(0,0,100,200);

public void itemStateChanged(ItemEvent e) 

if (list.getSelectedIndex()==1) 

//con.add(box3,BorderLayout.NORTH); 
box2.setVisible(true); 
//con.add(panel1,BorderLayout.CENTER); 
g =panel1.getGraphics(); 
con.validate(); 
init1(); 

} public void actionPerformed(ActionEvent e) 

if (e.getSource()==button1) 

dialog1.setVisible(true); 
} /*if (e.getSource()==enter) 

dialog1.setVisible(false); 
}*/ 

}
问题是:运行点击下拉列表的  画直线    然后正常的话应该出现所画的一条直线,但是现在的情况是
那条直线只是一闪而过,然后就不见了
但是如果在下拉列表中先点选其他的选项,在返回  画直线  就会正常显示,所以就感觉有点诡异,但有解决不了,所以请各位大虾帮帮忙了