【发布时间】:2012-07-28 08:44:55
【问题描述】:
如果我有一个无法修改的JPanel 对象,有没有办法在不使用注入的情况下修改它的paintComponent 方法?
我想到的一种方法是获取JPanel 的Graphics 对象,将其传递给paintComponent(),对这个Graphics 对象执行操作,最后在我的自定义JPanel 中绘制它。问题在于,每次调用原始 JPanel 的 paintComponent() 时,我都需要能够做到这一点。
我不需要替换paintComponent()中的内容,我只需要添加它。
例如:
JFrame frame = null;
for (Frame f : JFrame.getFrames()) {
if (((JFrame) f).getTitle().equals("Title")) {
JPanel panel = null;
// ... Cycle through all components and get the one that's a JPanel
// I want to use ColorConvertOp to make panel greyscale
}
}
【问题讨论】:
-
我的意思是不用注入来修改paintComponent
-
表示不这样做
new JPanel(){paintComponent(Graphics g){...}}; -
所以澄清一下:您可以访问
JPanels 实例,您只是不能修改该实例? -
请详细说明这个注入的事情..
-
我明白了,为什么不注入
painComponent
标签: java swing paintcomponent