Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Need Java-help или первые шаги в Java-программировании.

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

AlexRider

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну "втемную" советовать сложно  Да и последный таймер я делал больше года назад, но могу дать общую рекомендацию. Таймер должен только "тикать" и по тикам дергать функции других обьектов, которые уже будут к чемуто доступаться, изменять и т.д.
ЗЫ советую прочитать какюнибудь книжку про паттерны проектирования.

Всего записей: 18 | Зарегистр. 13-10-2006 | Отправлено: 19:29 10-12-2007
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно делать так:

Код:
 
package com.sample.timer.task;
 
import java.util.Timer;
import java.util.TimerTask;
 
/**
 * Base class that can be extended from any other class  
 */
public class SampleTimerTask
{
    public int [] _data;
     
    /**
     * Default constructor
     */
    public SampleTimerTask()
    {
        super();
    }
 
    /**
     * Inner class that has access to SampleTimerTask data
     */
    class InnerTimerTask extends TimerTask
    {
 
        public void run()
        {
            System.out.println(_data);
        }
         
    }
     
    /**
     * TEST function
     */
    public static void main(String[] args)
    {
        try
        {
            SampleTimerTask stt = new SampleTimerTask();
            new Timer().schedule(stt.new InnerTimerTask(), 1000L);
        }
        catch (Exception e)
        {
            e.printStackTrace(System.out);
        }
    }
}
 
 

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 23:01 13-12-2007 | Исправлено: vndovr, 23:03 13-12-2007
AlexRider

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vndovr
Такое решение не совсем подходит, т.к. в исходной задаче надо дергать метод класса унаследованного от Frame.
Поэтому вместо      public int [] _data;  лучше сделать чегото типа public MyFrame data. Соответственно передавать его в конструкторе и в таймере дергать data.doSomething().

Всего записей: 18 | Зарегистр. 13-10-2006 | Отправлено: 00:49 14-12-2007
Zlatogorov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для таймеров есть QUARTZ .
Прописывается временной паттерн и создаётся scheduling, и всё, остальное он берёт на себя.
К примеру :
"0 0/5 14 * * ?"     Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day  
Так что настройки очень гибкие.

Всего записей: 371 | Зарегистр. 26-11-2003 | Отправлено: 14:33 18-12-2007 | Исправлено: Zlatogorov, 14:39 18-12-2007
HighwayStar



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сегодня наконец осинило, как сдеать таймер. Вот  

Код:
public void TimerRun(){  
             CutomTimerTask();  
        timer.schedule(new TimerTask(){  
            public void run() {  
                TimerRun();  
            }  
                
          } , 1000);  
    }

Таймер зациклен, мне такой и был нужен для анимации.
 
Метод CutomTimerTask() находится в основном классе, в нем пишем то что надо делать по таймеру. TimerRun() вызываем где-нибудь в программе,чтобы запустить таймер.

Всего записей: 1048 | Зарегистр. 16-04-2005 | Отправлено: 16:53 21-12-2007 | Исправлено: HighwayStar, 16:55 21-12-2007
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexRider
Посмотри внимательно код - ты можешь наследовать этот класс от чего хочешь, т.к. сейчас он ни от чего не наследуется. А вложенный, нужного типа, имеет доступ к его полям данных.
 
HighwayStar
Это то же самое только у тебя inner класс анонимный. Суть та же.
 
Zlatogorov
Quartz очень хороший выбор, очень гибкий и с большим количеством настроек. Все зависит от задачи - если пишется приложение ориентированное на шедулинг или нужен встроенный  шедулер enterprise-приложений - тогда must have без вопросов. Если речь идет о небольшом приложении или шедулинг - так, от случая к случаю - я бы не стал - просто стрельба из пушки по воробьям.  
 
Задержка с ответом - работы вагон в конце этого года.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 00:39 22-12-2007
AlexRider

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vndovr
Да, действительно, и куда я раньше смотрел.

Всего записей: 18 | Зарегистр. 13-10-2006 | Отправлено: 22:14 22-12-2007
MistrBin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите пожайлуста, только начал изучать джава програмирование:
1) подскажите хороший хелп по джаве на русском с примерами
2) помогите создать програмку, которая бы генерировала 3 случайных числа в диапазоне 900 до 925 + котрая бы считала сумму этих генереруемых чисел
 
посто уже целый вечер просидел, и не могу найти, понял что с помошью Math.random() а как диапазон поставить и чтобы 3 числа выводило не знаю((( помогите плиз

Всего записей: 3 | Зарегистр. 31-01-2008 | Отправлено: 00:16 31-01-2008
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Посмотри к примеру http://javagu.ru
2.

Код:
 
package com.ru-board.forum.java;
 
/**
 * Class declaration
 *
 * @author Ru-Board member
 *
 */
public class RandomSample
{
    /**
     * TEST function
     * @param args
     */
    public static void main(String[] args)
    {
        int one = (int)(Math.random() * 25 + 900);
        int two = (int)(Math.random() * 25 + 900);
        int three = (int)(Math.random() * 25 + 900);
         
        System.out.println("Result is: " + (one + two + three));
 
    }
 
}
 

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 23:40 01-02-2008 | Исправлено: vndovr, 23:40 01-02-2008
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
        int one = (int)(Math.random() * 25 + 900);
        int two = (int)(Math.random() * 25 + 900);
        int three = (int)(Math.random() * 25 + 900);
 

Вы случайно не из Индии?

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 10:27 03-02-2008
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вау, какое многозначительное вступление...
Интересно что же именно в данном коде, как ответе на поставленный вопрос, натолкнуло на эту мысль?
Исключим использование java.util.Random - собственно, вопрос звучал о java.lang.Math.
 
Прошу...
 
Я, конечно, не ставил себе задачи написать наиболее оптимальный код, а просто показал как, в принципе, можно решить подобную задачу с использованием Math.random(), и со своей стороны вижу сходу с полдесятка особенностей связанных с данным кодом.  
 
Но мне очень любопытно что заметил ты .

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 22:17 03-02-2008 | Исправлено: vndovr, 22:23 03-02-2008
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но мне очень любопытно что заметил ты

Отсутствие циклов
9 из 10 индусов вместо того, чтобы написать for (int i=0; i<3; i++) делают copy/paste 3 раза

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 18:03 04-02-2008
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
далеко не все
 
Но я с ними согласен для случая, когда речь идет о малом количестве итераций и когда время необходимое на вычисление блока в цикле соизмеримо с временем необходимым для вычисления условий цикла. Причины просты:  
(1) производительность,  
(2) читабельность текста,  
(3) объем исходного кода.
 
Если рассмотреть на данном примере и написать его через цикл, то количество исходного кода будет сравнимым (может больше, а может и меньше - смотря как написать ). Но производительность в любом варианте будет меньше, читабельность - как минимум не улучшится.
 
В принципе подобная рекомендация (разворачивать цикл с малым числом итераций в последовательные вычисления) относится к любым языкам, когда речь идет о производительности.
 
То что в данном случае есть несколько избыточных приведений типов - это ошибка с моей стороны.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 00:54 05-02-2008 | Исправлено: vndovr, 00:58 05-02-2008
MistrBin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
псасибо большое)
а можете сказать зачем мы задаем параметр int если в принцыпе он по умолчанию так и стоит, просто пробывал при комплиляции ругается что-то но при запуске все роботает))
и скажите а при цыкле как? если нам надо 50 чисел вывести, то мы пишем  
for (int i=0; i<50; i++) {
а дальше? как формулу написать??

Всего записей: 3 | Зарегистр. 31-01-2008 | Отправлено: 01:47 06-02-2008 | Исправлено: MistrBin, 01:48 06-02-2008
Exwar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сам начинаю учить Java. IDE - Eclipse.
 
int определяет перемеменную типа integer (целочисленная)
 
Для вывода чисел делаем такой loop:
 
for(int i = 0; i < 50; i++) {    
 
     System.out.print(i + " ");
}
 

Всего записей: 10 | Зарегистр. 25-07-2007 | Отправлено: 14:21 08-02-2008 | Исправлено: Exwar, 14:26 08-02-2008
MistrBin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
public class Rand2
{
    public static void main(String[] args)
    {
    int b = 1;
    System.out.println(b);
    String b = "x";
    System.out.println(b);
     }
}
 
помогите плз, как сделать так чтобы 1 раз вывело число 1 а второй раз, символ "х", что тут не правильно?

Всего записей: 3 | Зарегистр. 31-01-2008 | Отправлено: 22:53 15-02-2008
rkhodjaev



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MistrBin
 По моемому через цикл надо попробовать.
Народ начал изучать Java.Возникли у меня пару вопросов,кто-нибудь может дать совет.
1. Установил у себя JDK и JRE.
2. Думал на чем писать коды,нашел eclipse и netbeats.Котрый из них лучше,вчера начал с Eclipse'са.Или пока не поздно надо переходить на Netbeans?
   
 Читаю книгу "Java Programing for kids,parents and grandparents"- Yakov Fain.Там есть примеры,некоторые из-них получаются,а некоторые нет.Не подскажите по примерам советы.
 3.  
                  public class World {
                public static void main(String[] args) {
         System.out.println("HI");
                                                }
                                           }
Как здесь cлово HI распечатать в другом цвете и менять размер?Здесь в методе out надо аргументы(значения) искать?
 
 

Всего записей: 1002 | Зарегистр. 05-05-2006 | Отправлено: 14:20 22-09-2008 | Исправлено: rkhodjaev, 14:26 22-09-2008
los2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто-нибудь может скомпилировать netbeans проэкт в *.jar файл?

Всего записей: 1845 | Зарегистр. 20-11-2001 | Отправлено: 12:28 24-09-2008
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
кто-нибудь может скомпилировать netbeans проэкт в *.jar файл?

Это все, вроде, настраивается в самом NetBeans.
 
Подскажите, почему не срабатывает
 
public void Calc() {
        if(jTextField1.getText().equals("")) Exit; ...} ???
 
на выражение jTextField1.getText().equals("") говорит "Not a statement".
 
Короче КАК ЗАПИСАТЬ УСЛОВИЕ "ЕСЛИ СТРОКА ПУСТАЯ, ТО..."?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 19:26 17-10-2008
rkhodjaev



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los2
NickOnToluca
 Может быть не в тему пишу.Но,есть ли у кого-нибудь книга по работе на NetBEAN'се?

Всего записей: 1002 | Зарегистр. 05-05-2006 | Отправлено: 08:34 20-10-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Need Java-help или первые шаги в Java-программировании.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru