java - super.paint() 在图像上不可见

标签 java image swing overriding graphics2d

我正在构建一个以图像作为背景的 JFrame。我正在重写 Paint() 方法以在 JFrame 中绘制该图像,但是当我在 Eclipse 中启动应用程序时,我添加的 JComponent 都不可见。这是我的 SSCCE:

public class foo extends JFrame{

   Image i = ImageIO.read(new URL("http://pittsburgh.about.com/library/graphics/regatta_balloons-640.jpg"));

   foo(){
       setSize(100, 100);
       add(new JButton("Foo"));
       setVisible(true);
   }

   @Override public void paint(Graphics g){
        super.paint(g);
        g.drawImage(i, 0, 0, null);
   }
}

最佳答案

不要重写JFrame的paint()方法!!!这不是定制绘画的完成方式。

如果您尝试向框架添加背景图像,请查看 Background Panel有几种方法。

关于java - super.paint() 在图像上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18965284/

相关文章:

java - 导入src无法解析

java - 在通过 <h :message> in JSF 进行展示重定向后保留 FacesMessage

java - 当组件超出文本区域时启用 ScrollPane

java - Android Studio - TextView 在数据库中进行更改后不更新

java - 使用 Twitter API 从推文获取坐标

java - 在java中为不同类型和策略设计api

java - 在 Java 的多线程应用程序中移动图像/形状

javascript - 一旦内容区域发生滑动,更改跨度的图像来源

Java2D OpenGL 图形加速不起作用

用户闲置 10 分钟后,Java 应用程序使屏幕显示无响应