我想画一个JPEG系数直方图
//coeff[] is the coefficients array
int hist[]=new int[25];
for(int i=0;i<coeff.length;i++)
hist[coeff[i]]++;
现在我想绘制条形图直方图的hist数组,但我不知道有什么功能吗? 提前谢谢
答案 0 :(得分:5)
当你有一个JFrame或类似的东西时,你可以覆盖paint(Graphics g)方法。然后你可以像这样绘制条形图:
@Override
public void paint(Graphics g)
{
super.paint(g);
final int barwidth = 20;
for(int i=0;i<25;i++){
g.fillRect(i*barwidth , 0, barwidth , hist[i]*10);
}
}
以下是JLabel的示例:
class Histogram extends JLabel{
//... make hist visible for this class
@override
protected void paintComponent(Graphics g){
super.paintComponent(g);
final int BAR_WIDTH = 20;
final int X_POSITION = 0;
final int Y_POSITION = 200;
for(int i=0;i<25;i++){
g.fillRect(X_POSITION +i*BARWIDTH , Y_POSITION , BAR_WIDTH , -hist[i]*10);
}
}
}
然后你可以像这样将它添加到大型机:
Histogram histogram = new Histogram();
add(histogram);
当回答你的问题时,请标记主题,谢谢。