Допустимо ли строить таким образом график для JPanel? - PullRequest
2 голосов
/ 30 июля 2011

Мне нужно отобразить некоторые статистические данные внутри чьего-то класса, который расширяет JPanel. Сейчас планируется использовать paintComponent и класс Graphics следующим образом:

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    //create a rectangle to represent the outline of the graph
    g.drawRect(300, 50, 400, 350);

    //set up the datapoints
    for(int i = 0; i < data.size(); i++) {
        //put the datapoints where ever they need to go within this rectangle
        g.drawOval(x, y, width, height);
    }
}

Это ужасно по какой-то причине? Что еще более важно, есть ли какая-то удивительная, простая в использовании графическая библиотека, которую я мог бы использовать, но не знаю о чем?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 30 июля 2011

Рассмотрим JFreeChart

Вот Javadoc для JFreeChart

3 голосов
/ 30 июля 2011

Ваш код выглядит нормально для меня, за исключением того, что, возможно, ваши точки x и y расположены на

for(int i = 0; i < data.size(); i++) {
    g.drawOval(data.get(i).getX() - width/2, data.get(i).getY() - height/2, 
      width, height);
}

, так что овалы центрированы.

Кроме того, вы можете рассмотреть возможность преобразованияданные, такие, что нанесенные точки остаются в границах области и диапазона вашего графика.В противном случае у вас могут быть овалы за пределами вашего прямоугольника.

Возможно, вы захотите проверить JFreeChart для графических библиотек.

...