简单点可以直接用JLabel或者JButton,用setIcon就可以把图表示出来也可以自己写个component,直接把图画出来

解决方案 »

  1.   

    用一个jpanel,然后在它上面画出来,你只要建一个Image对象(如指定jpg文件),然后把这个Image传给jpanel画出来就可以了
      

  2.   

    简单说我想问的意思是有一个类A和类B,其中类B继承自JFrame怎么样在A的方法在实现在B的面板上绘制图??class A{
        public void ff(){
            //TO DO  在这里实现往B的面板中绘图。
        }
    }class B extends JFrame{}
      

  3.   

    我的观点:
    1.画图的功能代码应该另行封装,不应该直接写在UIMenuBar.java中。
    2.绘制图片的方法只需要一个Image对象和一个Graphics2D对象即可,使用后者的drawImage方法应该可以满足你要求的画图方式
    viewport对象好象不能直接在上面绘图吧,可能要装入一个JPanel作为画板:
    JViewport viewport = new JViewport();
    JPanel view = new JPanel();view.add(new JLabel(
    new ImageIcon("copy.gif")));viewport.setView(view);
      

  4.   

    同意Abib的看法。
    事件处理部分因该和界面完全分离。
    绘图部分只要传入一个Graphics对象的引用即可,没理由和界面放在一起。
    建议楼主看看MVC模式方面的材料
      

  5.   

    A 要在B里画图:A.draw(Graphics g){
    }B {
    paint(Graphics g){
    A.draw(g);
    }
    }
      

  6.   

    上面的他码为什么不能直接调用呢
    比如写成
    A 要在B里画图:A.draw(Graphics g){
    }B {
    //paint(Graphics g){
    A.draw(g);
    //}
    }
      

  7.   

    我无话可说了,请你买本Java语法书和Swing书好好看看吧.
      

  8.   

    要想在B组件中画图必须让 B失效(invalidate,repaint) -> 系统调用B.paint(Graphics g),如果你想在B中画A的东西,必须将Graphics g传给A,让A自己画. 在这之前,B必须得到A的实例.其实最大的问题和以上程序的逻辑无关.是语法和Swing知识薄弱.
      

  9.   

    介绍一种MVC,其实我也不懂,哈哈
    要不BARRACUDA来实现,你可以轻松实现显示和控制的区分!
      

  10.   

    不知道你的问题是需要用什么模式,还是怎样在 Viewport中画图?
    如果是需要用什么模式的话,我认为无所谓模式,只要代码逻辑划分清晰就可以了.
    至于在viewport中画图,前面已经答过了,使用一个可视对象加在viewport中,在可视对象的paint()方法中处理就可以了.