【发布时间】:2015-11-10 03:50:01
【问题描述】:
当我用谷歌搜索这个方法时。它表明它返回当前组件的高度。我很困惑,因为当我在 public void paintComponent(Graphics g) 中使用这个 getHeight() 时,它会返回我不知道它来自哪里的值。我想知道paintComponent是否有任何默认高度或宽度?谢谢你。你可以看下面的代码。
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Find the maximum value in the data
double max = data[0];
for (int i=1; i<data.length; i++)
max = Math.max(max, data[i]);
int barWidth = (int)((getWidth() - 10.0) / data.length - 10);
int maxBarHeight = getHeight() - 30;
g.drawLine(5, getHeight() - 10, getWidth() - 5, getHeight() - 10);
int x = 15;
for (int i = 0; i < data.length; i++) {
g.setColor(colors[i % colors.length]);
int newHeight = (int)(maxBarHeight * data[i] / max);
int y = getHeight() - 10 - newHeight;
g.fillRect(x, y, barWidth, newHeight);
g.setColor(Color.black);
g.drawString(dataName[i], x, y - 7);
x += barWidth + 10;
}
}
【问题讨论】:
标签: java swing paintcomponent jcomponent