Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JFreeChart 
V
    Опции темы
Ekate
Дата 13.12.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Добрый вечер,

прошу прощения за глупый вопрос, я на Java программирую совсем недавно.
Я по нажатию кнопки рисую чарт (использую JFreeChart) (выбираю из таблицы объект и для него рисую), но почему-то когда курсор мыши уходит с кнопки или заходит в область пострения
то рисуется автоматически первый чарт. Так они и меняют друг друга, текущий и первый, в зависимости от положения курсора....
Не понимаю, почему

Спасибо,
Ekate

Добавлено через 6 минут и 42 секунды
Уточнение, график меняется когда прохожу по контролам формы
PM MAIL   Вверх
Platon
Дата 13.12.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Код слушателя кнопочки в студию!
PM MAIL ICQ   Вверх
powerOn
Дата 13.12.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Модератор: Название темы должно отражать ее суть!


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Ekate
Дата 13.12.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Форма в билдере, поэтому напрямую со слушателями не работаю,

След код сгенерирован автоматически
Код

btnShow.setText("Show graph");
        btnShow.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnShowMouseClicked(evt);
            }
        });


Обработчик на клик вызывает функцию, которая и рисует диаграмму

powerOn, сорри, исправлюсь
PM MAIL   Вверх
serger
Дата 13.12.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: нет
Всего: 5



Вот она радость визуальщины.
Какая радость писать неконтролируемый код?!

ps. Пож. приведите более понятный код, что откуда и куда запускается..


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Kangaroo
Дата 13.12.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 15
Всего: 104



Цитата(serger @  13.12.2007,  16:46 Найти цитируемый пост)
 Пож. приведите более понятный код, что откуда и куда запускается..

А точнее покажите метод btnShowMouseClicked(evt);


--------------------
Lost....
PM MAIL MSN   Вверх
powerOn
Дата 13.12.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Еще к поставленным вопросам: Каким образом рисуете? Методы paint или paintComponent не переопределяете? Если да, то их тоже неплохо бы увидеть.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Ekate
Дата 14.12.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Cпасибо за помощь,

на клик мыши вызывается drawChart()



Код

private void drawChart(){
   
    int PeriodIndex=cmbPeriod.getSelectedIndex();
    String item=getSelectedItem();
    if (PeriodIndex!=-1 && item.length()!=0){
        Object[] coll = data.getHistory(getSelectedItem(),PeriodIndex);
        String[] TempStatistics = (String[])coll[0];
        TimeSeriesCollection globalHistory = (TimeSeriesCollection)coll[1];
        LoadChart(drawPainChart(globalHistory,PeriodIndex));
    } 
    else {ErrorMessage("Please, select the patient and the period for the chart");}
}

 private JFreeChart drawPainChart(TimeSeriesCollection hSeriesCollection, int k) {
        
        TimeSeriesCollection hDataset = new TimeSeriesCollection();
        TimeSeries tempSeries = hSeriesCollection.getSeries(k);
        hDataset.addSeries(tempSeries);
        
        DateAxis timeAxis = new DateAxis("Time");
        timeAxis.configure();
        
        NumberAxis painAxis = new NumberAxis("Level");
        hAxis.setTickUnit(new NumberTickUnit(1));
        hAxis.setRange(-0.5, 10.5);
        
        XYBarRenderer barRenderer = new XYBarRenderer();
        
        XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer();
        lineRenderer.setShapesVisible(false);
        
        XYDotRenderer dotRenderer = new XYDotRenderer();
        dotRenderer.setDotHeight(6);
        dotRenderer.setDotWidth(6);
        
        XYPlot hPlot = new XYPlot();
        hPlot.setDataset(0, hDataset);
        hPlot.setDataset(1, hDataset);
        hPlot.setDomainAxis(timeAxis);
        hPlot.setRangeAxis(hAxis);
        hPlot.setRenderer(0, lineRenderer);
        hPlot.setRenderer(1, dotRenderer);
        
        LegendItemCollection emptyLegend = new LegendItemCollection();
        hPlot.setFixedLegendItems(emptyLegend);
        
        JFreeChart hChart = new JFreeChart(hPlot);
        return hChart;
    } 

private void LoadChart(JFreeChart chart){
      
        ChartPanel panel = new ChartPanel(null); 
        panel.setChart(chart);
        jPanelChart.setLayout(new BorderLayout()); 
        jPanelChart.add(panel, BorderLayout.CENTER);
  }


Спасибо,
Ekate
PM MAIL   Вверх
KOp4iK
Дата 14.12.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 26.11.2004
Где: Латвия

Репутация: 1
Всего: 3



эээ погодите а как же 
Код

btnShowMouseClicked(evt);

Цитата

на клик мыши вызывается drawChart()

клик мыши на каком элементе?
Цитата

когда курсор мыши уходит с кнопки 

очень похоже на то что у вас перекрыт метод
Код

            public void mouseExited(MouseEvent e)
            {
                //To change body of implemented methods use File | Settings | File Templates.
            }

PM MAIL   Вверх
Ekate
Дата 14.12.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.7.2007

Репутация: нет
Всего: нет





Цитата(KOp4iK @  14.12.2007,  13:35 Найти цитируемый пост)
клик мыши на каком элементе?


Некорректно выразилась, drawChart вызываю как раз на событие клика по кнопке, т.е.
Код

private void btnShowMouseClicked(java.awt.event.MouseEvent evt) {                                     
         drawChart();
    }   




PM MAIL   Вверх
Real McCoy
Дата 15.12.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 28.6.2007

Репутация: 2
Всего: 2



Ekate
а никто нигде, случайно, больше не вызывает drawChart() или LoadChart()?

И второстепенный вопрос: обязательно ли каждый раз заново создавать ChartPanel? Если она у Вас - элемент дизайна формы, то лучше её создать один раз вместе с формой, а потом просто перерисовывать chart на ней.
PM MAIL   Вверх
Ekate
Дата 17.12.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Real McCoy, ну конечно же, глупая ошибка!
Теперь все работает, спасибо smile)
PM MAIL   Вверх
powerOn
Дата 18.12.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Модератор: Разделил темы. О tooltip-ах теперь здесь


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0874 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.