На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> маленькая ошибка в коде , я чайник
    Этот код использует симуляцию нажатия мыши и её перемещения. Отправил на компиляцию, а т.к. я только слазяю с делфи под планшет, в джаве тяжело сразу разобраться после делфи. Народ. В чём ошибка. Создает 2 класса после компиляции.
    и как собрать этот код до .апк Работаю в эклипсе под джаву. пишет ошибку. ну, я и через консоль писал. Это прога под консоль? и как её сделать не для консоли?


    ExpandedWrap disabled
      package myrobot;
      import java.awt.*;
       
      import java.awt.event.ActionEvent;
       
      import java.awt.event.ActionListener;
       
      import java.awt.event.InputEvent;
       
      import java.awt.event.KeyEvent;
       
      import javax.swing.*;
       
       
       
      class myFrame extends JFrame
       
      {
       
          private Robot robot;
       
          public myFrame()
       
          {
       
              setTitle("iRobot"); // имя заголовка нашего окна
       
              JPanel panel = new JPanel(); // создаем контейнер
       
              GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
       
              GraphicsDevice screen=env.getDefaultScreenDevice(); // GraphicsDevice класс описывает графические устройства, которые могут быть доступны в определенной среде графики.
       
              try {
       
                  robot=new Robot(screen);
       
              } catch (AWTException ex) { }
       
              JButton bt1 = new JButton("Start"); // создаем кнопку
       
              panel.add(bt1); // добавляем нашу кнопку на панель
       
              bt1.addActionListener(new ActionListener() { // добавляем обработчик на нашу кнопку
       
                  public void actionPerformed(ActionEvent e) {
       
                      for(int i=0; i<10; i++) // здесь и происходят все действие с нашим роботом
       
                      {
       
                          robot.mouseMove(500, 500 + 15 * i); // двигаем мышку на заданную координату x,y
       
                          robot.mousePress(InputEvent.BUTTON1_MASK); // нажимаем левую кнопку мыши
       
                          robot.delay(300); // 300 миллисекундная пауза
       
                          robot.mouseRelease(InputEvent.BUTTON1_MASK); // отжимаем левую кнопку мыши
       
                          robot.delay(300);
       
                          robot.keyPress('O'); // нажимаем кнопу 'O' с клавиатуры
       
                          robot.keyRelease('O'); // отжимаем кнопу 'O' с клавиатуры
       
                          robot.delay(300);
       
                          robot.keyPress(KeyEvent.VK_DOWN); // нажимаем кнопу 'DOWN' с клавиатуры
       
                          robot.keyPress(KeyEvent.VK_DOWN);
       
                          robot.keyPress(KeyEvent.VK_DOWN);
       
                      }
       
                  }
       
              });
       
              Container pane = getContentPane(); // создаем контейнер
       
              pane.add(panel); // добавляем нашу панель в контейнер
       
              pack(); // задает размер нашему фрейму исходя из размеров нашей кнопки
       
          }
       
      }
       
       
       
      public class MyRobot {
       
          public static void main(String[] args) {
       
              myFrame frame = new myFrame(); // создаем объект класса myFrame
       
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // задаем действие обработчику на кнопку "крестик"
       
              frame.show(); // выводим на экран нашу форму
       
          }
       
      }
    Сообщение отредактировано: тигр -
      Вот такой ваш (поправленный) вариант откомпилировался и заработал:
      ExpandedWrap disabled
        //package myrobot;
        import java.awt.*;
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import java.awt.event.InputEvent;
        import java.awt.event.KeyEvent;
        import javax.swing.*;
         
        class myFrame extends JFrame
        {
            private Robot robot;
            public myFrame()
            {
                setTitle("iRobot"); // имя заголовка нашего окна
                JPanel panel = new JPanel(); // создаем контейнер
                GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice screen=env.getDefaultScreenDevice(); // GraphicsDevice класс описывает графические устройства, которые могут быть доступны в определенной среде графики.
                try {
                    robot=new Robot(screen);
                } catch (AWTException ex) { }
         
                JButton bt1 = new JButton("Start"); // создаем кнопку
                panel.add(bt1); // добавляем нашу кнопку на панель
                bt1.addActionListener(new ActionListener() { // добавляем обработчик на нашу кнопку
         
                    public void actionPerformed(ActionEvent e) {
         
                        for(int i=0; i<10; i++) // здесь и происходят все действие с нашим роботом
                        {
                            robot.mouseMove(500, 500 + 15 * i); // двигаем мышку на заданную координату x,y
                            robot.mousePress(InputEvent.BUTTON1_MASK); // нажимаем левую кнопку мыши
                            robot.delay(300); // 300 миллисекундная пауза
                            robot.mouseRelease(InputEvent.BUTTON1_MASK); // отжимаем левую кнопку мыши
                            robot.delay(300);
         
                            robot.keyPress('O'); // нажимаем кнопу 'O' с клавиатуры
         
                            robot.keyRelease('O'); // отжимаем кнопу 'O' с клавиатуры
                            robot.delay(300);
                            robot.keyPress(KeyEvent.VK_DOWN); // нажимаем кнопу 'DOWN' с клавиатуры
                            robot.keyPress(KeyEvent.VK_DOWN);
                            robot.keyPress(KeyEvent.VK_DOWN);
                        }
                    }
                });
         
                Container pane = getContentPane(); // создаем контейнер
                pane.add(panel); // добавляем нашу панель в контейнер
                pack(); // задает размер нашему фрейму исходя из размеров нашей кнопки
         
            }
        }
         
        class MyRobot {
            public static void main(String[] args) {
                myFrame frame = new myFrame(); // создаем объект класса myFrame
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // задаем действие обработчику на кнопку "крестик"
                frame.show(); // выводим на экран нашу форму
            }
        }
        йо, действительно. так и знал , что ошибка маленькая.

        Сейчас откомпилирую. в какой среде Вы его компилировали?

        И как. у меня пишет ошибки на каждой строчке. как откомпилировать под планшет?

        Извините, я новичок в этой разработке.

        //package myrobot;
        Прикреплённая картинка


        Я работаю в эклипсе. Как компилировать этот проект в эклипсе, а точнее , какую вкладку-проект джава выбрать?

        Т.к. вижу, что стоят параметры конфигурации компилирования

        ExpandedWrap disabled
           public static void main(String[] args) {
                  myFrame frame = new myFrame(); // создаем объект класса myFrame
                  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // задаем действие обработчику на кнопку "крестик"
                  frame.show(); // выводим на экран нашу форму
        Сообщение отредактировано: тигр -
          Цитата тигр @
          Сейчас откомпилирую. в какой среде Вы его компилировали?
          Я в командной строке в винде.
          Цитата тигр @
          И как.
          ExpandedWrap disabled
            javac MyFrame.java

          Цитата тигр @
          Извините, я новичок в этой разработке.
          Да я такой же как вы, так что особо на меня не надейтесь. :yes-sad:
            не получается вобщем
            Сообщение отредактировано: тигр -
              Цитата тигр @
              у меня пишет ошибки на каждой строчке

              ошибки в студию
                а jdk настроен?
                  Цитата
                  и как собрать этот код до .апк

                  и
                  Цитата
                  extends JFrame

                  Не вижу причин, чтобы этот код работал в apk

                  Думаю, изначально, надо установить sdk для андройда, затем писать код под него, а не использовать Swing, и недоумевать, почему он не работает в apk ;)
                    Цитата VisualProg @
                    Цитата
                    и как собрать этот код до .апк

                    и
                    Цитата
                    extends JFrame

                    Не вижу причин, чтобы этот код работал в apk

                    Думаю, изначально, надо установить sdk для андройда, затем писать код под него, а не использовать Swing, и недоумевать, почему он не работает в apk ;)

                    Да. Этот код не под Андроид. А как его переделать под SDK?
                    Может, кто сталкивался с хожими проблемами?

                    Мне нужно под Андроид тач.

                    Есть код. Читал. Под SDK тач. Сейчас. Вот , например.

                    http://elsof.ru/android/tutorial/lesson-10...vennih-kasaniy/

                    но встречаю обработку касаний. именно обработку, а как бы вытащить данные и нажать программно? Может всё-таки , кто сталкивался в играх или ещё где...

                    Добавлено
                    уже jdk настроено. откомпилилось, но не для андроида.
                      Цитата
                      А как его переделать под SDK?

                      Не под SDK, а под андройд. Никак. К тому же, в андройде нет мыши...

                      Андройд программирование, ровно как и J2ME отличается от обычного написания программ на java (где то требуется оптимизация, где то знание как вообще пакуется фрейм или компаненты для нужного телефона с конкретной операционкой)

                      В ведройде требуется сделать xml конфигурацию под каждый будущий фрейм, далее, SDK поможет распарсить фрейм в низкоуровневый список констант и объекты. Не смотря на то, что в андройде ресурсов может быть на порядок больше чем в телефоне использующем J2ME приложение, весь твой код транслируется самим SDK в пригодный для андройда вид. (так ты можешь использовать привычное написание классов и использование всех технологий jre 1.7, или выше)

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

                      Цитата
                      откомпилилось, но не для андроида.

                      Тебе ужно наследовать класс, инициализирующий точку входа для андройда.

                      Цитата
                      но встречаю обработку касаний.

                      Обычный listener, читай список слушателей у контроллов, там всё есть.
                        http://stackoverflow.com/questions/1492819...nt-or-other-way

                        нашел ответ на сайте

                        gsnfkcz jnrjvgbkbnm


                        ExpandedWrap disabled
                          package com.example.qb;
                           
                          import java.io.DataOutputStream;
                          import java.io.IOException;
                           
                          import android.app.Activity;
                          import android.os.Bundle;
                          import android.util.Log;
                          import android.view.Menu;
                          import android.view.MenuItem;
                           
                          public class MainActivity extends Activity {
                           
                              @Override
                              protected void onCreate(Bundle savedInstanceState) {
                                  super.onCreate(savedInstanceState);
                                  setContentView(R.layout.activity_main);
                              }
                           
                          String[] touchEvent = { "sendevent /dev/input/event0 0 0 0\n",
                                  "sendevent /dev/input/event6 3 53 499\n",
                                  "sendevent /dev/input/event6 3 54 680\n",
                                  "sendevent /dev/input/event6 3 58 40\n",
                                  "sendevent /dev/input/event6 3 48 3\n",
                                  "sendevent /dev/input/event6 3 57 0\n",
                                  "sendevent /dev/input/event6 0 2 0\n",
                                  "sendevent /dev/input/event6 0 0 0\n",
                                  "sendevent /dev/input/event6 0 2 0\n",
                                  "sendevent /dev/input/event6 0 0 0\n",
                                  "sendevent /dev/input/event0 3 0 2\n",
                                  "sendevent /dev/input/event0 0 0 0\n"};
                          }
                           
                          class Ехс2 {
                          private static final String TAG = null;
                           
                          public static void main(String args[]) {
                          try {
                               Thread.sleep(2000);
                                  Process root = Runtime.getRuntime().exec("su");
                                  DataOutputStream os = new DataOutputStream(root.getOutputStream());            
                                  for(int i = 0; i < touchEvent.length; i++){
                                          Log.i(TAG, touchEvent[i]);  
                                          os.writeBytes(touchEvent[i]);
                                          os.flush();
                                  }
                                  root.waitFor();
                          } catch (IOException e) {
                              Log.e(TAG, "Runtime problems\n");
                              e.printStackTrace();
                          } catch (SecurityException se){
                              se.printStackTrace();
                          } catch (InterruptedException e) {
                              e.printStackTrace();
                          }
                          }
                          }


                        но пишет ошибки следующие: 1. TAG = null; объявил. не видит тачивент строковый динамический массив, в цикле не ввидит. Что делать? И вообще до проекта не могу довести код по ссылке
                        Сообщение отредактировано: тигр -
                          Цитата
                          TAG = null; объявил.

                          ну, и что ты хочешь от объекта, который ссылается на null?

                          Цитата
                          не видит тачивент строковый динамический массив, в цикле не ввидит

                          :facepalm: ты сам его скрыл от protected класса Ехс2

                          ExpandedWrap disabled
                            public static void main(String args[])

                          :blink: Определись, что ты хочешь делать... Если тебе нужен андройд, используй Activity.

                          Цитата
                          И вообще до проекта не могу довести код по ссылке

                          То ли у тебя каша в голове, то ли ты основ не знаешь :huh:

                          Без основ всё без толку, почитай чего нибудь...
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0864 ]   [ 16 queries used ]   [ Generated: 18.05.24, 03:45 GMT ]