J S*_*ith 0 java swing graphics2d
我已经扩展了JPanel类来绘制图形.我遇到的问题是我需要一个全局图形对象才能用多种方法调用它...例如,这就是我要做的事情:
public class Graph extends JPanel {
private Graphics2D g2d;
public void paintComponent(Graphics g){
g2d = (Graphics2D)g;
}
public void drawGridLines(int hor, int vert){
g2d.someLogicToDrawMyGridLines(someparams);
}
}
Run Code Online (Sandbox Code Playgroud)
这会返回一个空指针异常 - 所以我的问题是:如何创建一个全局图形对象?在这种情况下,最佳做法是什么?
我的建议是这样的:
public class Graph extends JPanel {
public void paintComponent(Graphics g){
super.paintComponent(g);
g2d = (Graphics2D) g;
drawGridLines(g2d, ......);
}
private void drawGridLines(Graphics2D g2d, int hor, int vert){
g2d.someLogicToDrawMyGridLines(someparams);
}
}
Run Code Online (Sandbox Code Playgroud)
即在paintComponent调用中保留图形上下文的所有用途.
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |