public test() {
    JFrame jf = new JFrame();
    JButton jbt = new JButton("button");
    jf.getContentPane().setLayout(new FlowLayout());
    jf.getContentPane().add(jbt);
    setVisible(true);
//  Graphics g = jf.getGraphics();
}如上,带一个按钮的JFrame,怎样才能把这个jf画成一个有按钮的图像,如在jf2里将jf所显示的画成一幅图;
getGraphics()得到的g 这个图形上下文 能够做些什么用?
能够带一点例子更好,请纯顶的不要回. 谢谢!

解决方案 »

  1.   

    g.drawLine(0, 0, 500, 500); 如果在drawLine前加个while(true) 
    你就可以看到你画的东西了在JFrame没有setVisible(true)的时候,getGraphics()的返回结果是null 。另外Java上下文的意思是“环境”或者“容器”...翻译问题
      

  2.   

    当jf1显示过以后,jf1.getGraphics()才能够获得Graphics。
    在画jf2的方法中,拿着jf1的Graphics画到自己想要的位置即可。
      

  3.   

    好像不行啊. 使用drawLine()只会画出一条黑线啊, 根本不是我要的jf的图像啊, 不知道是不是我方法有错?
    能不能写个简单的例子出来看看呢? 
      

  4.   

    我知道应该先setVisible(true), 
    在画jf2的方法中,拿着jf1的Graphics画到自己想要的位置即可。   ---这句话什么意思呢, 怎么画? 不好意思, 以前没接触过这方面的. 要是能带个例子也许会更容易理解.
      

  5.   


    boolean contains(JComponent c, int x, int y) 
    如果指定 x,y 位置包含在指定组件外观的已定义形状中,则返回 true。 
    重写这个方法以绘制特殊形状的按钮.     void paint(Graphics g, JComponent c) 
    绘制指定组件,使其适合外观。 
    重写这个方法以画出自己想要按钮. 
    还有些其他的方法,根据需要来决定是否重写