在扩展JPanel的类中给出这些方法:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
g.setColor(Color.BLACK);
}
public void drawLabels(LinkedList<Label> labelList) {
for (Label l : labelList) {
// drawString(l.getContent(), l.getX(), l.getY());
}
}
我将如何从中访问Graphics元素 paintComponent()在drawLabels()里面?我见过(无数) 关于不处理外面的Graphics对象的评论 paintComponent()方法,但我无法理解 另一种解决方案。
任何有用的建议都将不胜感激。
答案 0 :(得分:2)
我如何从drawLabels()中的paintComponent()访问Graphics元素?
您不要尝试直接访问Graphics对象。
从drawLabels()
方法中调用paintComponent()
方法,然后可以将Graphics对象传递给drawLabels()方法:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
g.setColor(Color.BLACK);
drawLabels(g, labelList);
}
public void drawLabels(Graphics g, LinkedList<Label> labelList) {
for (Label l : labelList) {
// drawString(l.getContent(), l.getX(), l.getY());
}
}