рисование гистограммы - PullRequest
1 голос
/ 29 марта 2012

Я хочу нарисовать гистограмму коэффициента JPEG

//coeff[] is the coefficients array
int hist[]=new int[25];
for(int i=0;i<coeff.length;i++)
hist[coeff[i]]++;

Теперь я хочу нарисовать массив исторических данных, как гистограмма гистограммы, но я не знаю, какая функция это делает?заранее спасибо

1 Ответ

5 голосов
/ 29 марта 2012

Если у вас есть 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);
    }
  }
}

Затем вы можете добавить его в свой мэйнфрейм так:1008 *

Когда ответите на ваш вопрос, отметьте ветку, спасибо.

...