JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
java指南之使用图形:解决常见图像问题
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]
解决常见图像问题 
问题: 我不知道将我的绘图代码放在什么地方。 
任何从JComponent派生的组件的绘图代码应该属于paintComponent 方法。参看 自定义绘图概览获得详细信息。 
问题: 我绘制的材料没有显示出来。 
先检查你的组件是否显示了。 解决常见组件问题 将帮助你解决这个问题。 
问题: 我的applet的背景显示出来了,但是前景内容没有显示出来。 
你是否误解了在一个JApplet子类中直接绘图呢?如果是的话,那么你的内容会被为每个JApplet实例自动创建的内容面板(content pane)遮盖。作为替代,创建执行绘图的另一个类,然后将它加入JApplet的内容面板。参看 绘图 得到Swing中的绘图如何工作的更多信息。 
问题: 我的组件的前景显示了,但是背景不可见。结果是在我的组件下面的一个或者多个组件变得可见,而这不是我期望的。 
确保你的组件是不透明的。例如 JPanel缺省情况下是不透明的。要想使得其它组件,例如JLabel不透明,你必须对它们调用 setOpaque(true) 。 
如果你的自定义组件扩展 JPanel或者一个更特殊的 JComponent 派生组件,那么你可以在绘制你的组件的自己的内容前通过调用 super.paintComponent 绘制背景。 
你可以自己绘制背景,在paintComponent方法的最上面使用下面的代码: 
g.setColor(getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(getForeground());

问题: 我使用setBackground设置组件的背景色,但是它好像不起作用。 

很可能你的组件没有绘制背景,要么是因为它是透明的,要么是你的自定义绘制代码没有绘制背景。例如,如果你为JLabel设置背景色,你必须也调用setOpaque(true)使得标签的背景被绘制。更多帮助,请参看前面的问题。 
问题: 我使用和指南的范例中一样的代码,但是它不能工作。为什么? 

代码是否在和指南的范例中一样的方法中?例如,如果指南的范例的代码在 paintComponent 方法中,那么这个方法可能是代码保证可以工作的唯一的地方。 
问题: 我如何绘制粗线?图案? 
JavaTM 2D API提供实现带宽度和式样的直线以及填充和绘制形状这样的图案的扩展支持。参看 2D图形 教材获得使用Java 2D API的更多信息。 
如果你在上面的列表中没有找到你的问题,参看 解决常见组件问题 和 解决常见图层问题。 
上一篇:java指南之使用图形:使用图像

下一篇:事件处理中UI的刷新问题(笔记体小品文)

  • 如何编写一个JAVA的队列类?
  • 关于Date和Calendar类的基础用法
  • WEBLOGIC+ORACLE+JBUILDERLINUX与WINDOWS平台傻瓜入门一步步走(二)
  • Java Thread Programming 1.9.1 - Threads and Swing
  • Java平台乱弹(4)
  • WebLogicServer环境下先进的JMS设计模式
  • JDBC访问数据库之代码生成器DaoCodeGen(V0.1)
  • FOP(PDF与JAVA)
  • [原创]发布工程,解决第三方jar包
  • 最新EJB设计模式中文版之SessionFacade(会话外观)
  • 读取foxpro格式的dbf文件
  • IoC 容器和DependencyInjection 模式
  • JBuilder2005+JBOSS+Oracle9i开发环境配置
  • javac - Java 编程语言编译器的使用文档
  • 抛砖引玉 教你如何成为一名Java初级程序员
  • RedHat linux+apache+tomcat+mod_jk 负载均衡安装说明[来自xiaoaj@softroad.com.cn]
  • Java应用程序添加退出事件处理
  • Groovy 学习笔记3 运行效率
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号