Java JPanel方法paintComponent()
我们可以通过简单地实例化Java JPanel方法paintComponent(),java,swing,jpanel,awt,jcomponent,Java,Swing,Jpanel,Awt,Jcomponent,我们可以通过简单地实例化JPanel对象来使用paintComponent()方法吗 //probably in this fashion public class appletic{ JComponent p= new JPanel(); int d=10; public void pC(Graphics g){ p.paintComponent(g); g.fillOval(40,40, d, d); } //this code isn't right bu
JPanel
对象来使用paintComponent()
方法吗
//probably in this fashion
public class appletic{
JComponent p= new JPanel();
int d=10;
public void pC(Graphics g){
p.paintComponent(g);
g.fillOval(40,40, d, d);
}
//this code isn't right but just to give a brief idea about my question
不扩展嵌入该方法的特定类
public class appletic extends JPanel {
int d=10;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillOval(40,40, d, d);
}
在您的第一段代码中,如何使用图形实例调用pC方法?虽然这是可能的,但这是非常不鼓励的做法。使用JPanel及其paintComponent方法的正确方法是将它添加到一个窗口/框架中,让内置的绘画框架调用它,让youTry阅读。问题是为什么?你这样做有什么好处?在Swing中绘制要比只调用
绘制
复杂得多,例如,需要正确设置和转换图形
上下文,以便在正确的位置绘制组件。绘画是通过一系列链接的方法实现的,每个方法都执行特定的工作,到目前为止,您已经在第一个示例中打破了绘画链的责任。如果要生成组件的快照,应该使用print
或printAll
@MadProgrammer“问题是为什么?”这是一个很好的问题。请参见备注:这(获取有效的图形对象)对于buffereImage
来说非常简单。。