使用代码 使用了JImageComponent的开发者应该记得在修改或者编辑了图像之后调用repaint()方法. 那些希望实现并测试他们的 JComponent 子类的开发者必须遵守有关Swing的执行指导方针(http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html): Java Applet 应该使用 SwingUtilities 的 invokeAndWait(): Java 应用程序可能也使用 SwingUtilities 的 invokeAndWait() 或者 invokeLater(): 使用invokeAndWait的一个例子:
使用 invokeLater 的一个例子:
更进一步这是对创建一个 Java™ Swing的 JComponent子类用来展示图像的一个简要介绍. 从这里起步,还有许多的方面需要涉及. 例如,JImageComponent对于其便捷的设置和修改没有做出规定. 创建一个Java™ 抽象窗口工具Abstract Window Toolkit 的 Component 类的子类可能需要要遵循同样的步骤. 这些地方需要特别注意: 有一个缺陷将会需要子类做出规定,以确保有用于消除可能的闪烁的额双缓冲; 另外一个则要扩展类来正确的捕获和/或引发事件. 要点开发者也许还会对Java™的用于图像的 2D 图形 API感兴趣. 扩展Swing的 JComponent 并不要能达成此目的唯一能被扩展的类 . 例如,开发者肯能会选择JPanel类来扩展. 在商业应用程序中,我会坚持使用像JButton和JLable这样的本地类,以方便使用. 在 2014 年, 我改进了用于滚动容器中的 JImageComponent . 现在,我会使用 JImageComponent 来做一些像测试动画,绘制分形以及绘制自定义图像这些有趣的事情. |