我发现一个神奇的错误,请求高手指导在下面简短几行的代码中,运行后我所加的标签和文本域居然显示不出来
只有在双击使其最大化的后才可以显示出来!如果将其最小化后在打开又是什么都看不见了,然后再双击使其最大化又可以看不见了!请问这是什么原因呢?
怎样改正,才可以让其运行后,就正常显示了呢?
谢谢
代码如下;import java.awt.*;
import javax.swing.*;public class Test extends JApplet
{
JTextField xfield1 ;
JLabel xLabel1 ;
Container con;
public void init()
{
con=getContentPane();
con.setLayout(new FlowLayout());
xfield1 = new JTextField(6);
xLabel1 = new JLabel("请输入X1坐标");
con.add(xLabel1);
         con.add(xfield1);
    
}
public void paint(Graphics g)
{
g.drawLine(20,20,50,100); }
}

解决方案 »

  1.   

    把paint方法删除,如果需要画线,在init中最后加上
    con.getGraphics().drawLine(20,20,50,100);
    //------------code -----------------
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.HeadlessException;import javax.swing.JApplet;
    import javax.swing.JLabel;
    import javax.swing.JTextField;public class AppletTest extends JApplet
    { public AppletTest() throws HeadlessException
    {
    super();
    // TODO Auto-generated constructor stub
    } JTextField xfield1; JLabel xLabel1; Container con; public void init()
    {
    con = getContentPane();
    con.setLayout(new FlowLayout());
    xfield1 = new JTextField(6);
    xLabel1 = new JLabel("请输入X1坐标");
    con.add(xLabel1);
    con.add(xfield1); }}
      

  2.   

    问题不神奇,你把paint方法重写了,所以只有你画线的显示,你在paint()方法中,先写上super.paint(g)就可以了。
      

  3.   

    谢谢 各位
    问题得以解决
    其中
    -----------------------------------------------------问题不神奇,你把paint方法重写了,所以只有你画线的显示,你在paint()方法中,先写上super.paint(g)就可以了。
    ------------------------------------------------------------------的方法,最好@@
    非常感谢!!
      

  4.   

    又有个问题,对于上面的问题,我在代码
             public void paint(Graphics g)
    {
    g.drawLine(20,20,50,100);
    }
    里面加个 super.paint(g);就一切N正常了,但是我又想将paint()改为:paintComponent()
    也就是上面的代码替换为:
       public void paintpaintComponent(Graphics g)
       {
       super.paintComponents(g);//我想换为super.paintComponent()的
                                                  //但是程序只是代"s"的组建
       g.drawLine(20,20,50,100);
       }
    其他都不变,如果这样改,那么直线就画不出来了,请问,是怎么回事呢?
    谢谢!!!