我是个java菜鸟!想问一下在java中用Graphic画怎么没显示出来?敬请哪位高手指点一二!

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.*;
    public class  GraphicsExam extends JFrame
    {
    public GraphicsExam()
    {
    setSize(1000,700);
    setVisible(true);
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) 
    {
    new GraphicsExam();
    }
    public void paint(Graphics g)
    {
    g.drawLine(20,550,260,550);
    g.drawLine(140,50,140,550);
    g.drawLine(280,550,520,550);
    g.drawLine(400,50,400,550);
    g.drawLine(540,550,780,550);
    g.drawLine(660,50,660,550);
    }
    }
      

  2.   

    很明显的问题我在缩小再放大后会产生线天!
    在此我又想请教一下Graphics在JFrame中的'兼容'是不是有问题还是别的原因?
    请高手指教;
      

  3.   

    我给你想了一个方法,就是将这个绘画的方法放到Panel里面去,可能面板上面不能够绘画吧!代码如下:import javax.swing.*;
    import java.awt.*;public class GraphicsExam extends JFrame
    {
       public GraphicsExam()
       {
          setTitle("Login");
          setSize(1000,700);
          setVisible(true);
          setResizable(false);
          Container con = getContentPane();
          con.add(new ExampPanel());
          setDefaultCloseOperation(EXIT_ON_CLOSE);
       }   public static void main(String[] args)
       {
           JFrame.setDefaultLookAndFeelDecorated(true);
           new GraphicsExam();
       } 
    }class ExampPanel extends JPanel
    {
        public void paint(Graphics g)
       {
         g.drawLine(20,550,260,550);
         g.drawLine(140,50,140,550);
         g.drawLine(280,550,520,550);
         g.drawLine(400,50,400,550);
         g.drawLine(540,550,780,550);
         g.drawLine(660,50,660,550);
       }
    }
      

  4.   

      我在书上面查了一下的,书上的解释如下:要在小应用程序或应用程序中的画板上绘制自定义图形,差不多始终要编写扩展JPanel类的新类,在该类中,覆盖paintComponent()方法的定义.也就是说,任何时候,你准备把文本信息或图形放入画板,都需要定义一个新类,并改写paintComponent()方法.如:class MyPanel extends JPanel
    {
       ...
       public void paintComponent(Graphics g)
       {
           .....//将在这里通过参数g完成绘制代码
       }
    }
      

  5.   

    但是这个在JFrame中若缩放一下又可显示!按您的意思是不是在Frame和JFrame中都这样还是另外在JFrame中按paintComponent()
    另外这个在Frame中的应用不是还好吗?麻烦再问一下为什么在JFrame中为什么会出现这种状态.....尤其是在缩放之后你看仍可看到.
    谢谢了
      

  6.   

           JFrame和Frame只是一个框架而已,一般添加组件的话还是放在面板里面
      

  7.   

    JPanel?但是有的不是直接放进去吗>?只是一个框架高手想问一下这所代表的深层含义.........谢谢
      

  8.   

    你如果不想用面板也可以的,在
    public void paint(Graphics g)
    {
        super.paint(g);    //加上这么一句话,调用父类的paint方法
          g.drawLine(20,550,260,550); 
         g.drawLine(140,50,140,550); 
         g.drawLine(280,550,520,550); 
         g.drawLine(400,50,400,550); 
         g.drawLine(540,550,780,550); 
         g.drawLine(660,50,660,550); 
    }
      

  9.   

    现在还有个问题在JFrame里面为什么 一 开始没有显示仍然是这个问题!
    显然这在初始化的时候会对程序有影响的我想问问这是怎么一回事!也就是我
    最想问的问题。。
    谢谢!