Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.252.87] |
|
Сообщ.
#1
,
|
|
|
Этот код использует симуляцию нажатия мыши и её перемещения. Отправил на компиляцию, а т.к. я только слазяю с делфи под планшет, в джаве тяжело сразу разобраться после делфи. Народ. В чём ошибка. Создает 2 класса после компиляции.
и как собрать этот код до .апк Работаю в эклипсе под джаву. пишет ошибку. ну, я и через консоль писал. Это прога под консоль? и как её сделать не для консоли? 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(); // выводим на экран нашу форму } } |
Сообщ.
#2
,
|
|
|
Вот такой ваш (поправленный) вариант откомпилировался и заработал:
//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(); // выводим на экран нашу форму } } |
Сообщ.
#3
,
|
|
|
йо, действительно. так и знал , что ошибка маленькая.
Сейчас откомпилирую. в какой среде Вы его компилировали? И как. у меня пишет ошибки на каждой строчке. как откомпилировать под планшет? Извините, я новичок в этой разработке. //package myrobot;
Я работаю в эклипсе. Как компилировать этот проект в эклипсе, а точнее , какую вкладку-проект джава выбрать? Т.к. вижу, что стоят параметры конфигурации компилирования public static void main(String[] args) { myFrame frame = new myFrame(); // создаем объект класса myFrame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // задаем действие обработчику на кнопку "крестик" frame.show(); // выводим на экран нашу форму |
Сообщ.
#4
,
|
|
|
Цитата тигр @ Я в командной строке в винде.Сейчас откомпилирую. в какой среде Вы его компилировали? Цитата тигр @ И как. javac MyFrame.java Цитата тигр @ Да я такой же как вы, так что особо на меня не надейтесь. Извините, я новичок в этой разработке. |
Сообщ.
#5
,
|
|
|
не получается вобщем
|
Сообщ.
#6
,
|
|
|
Цитата тигр @ у меня пишет ошибки на каждой строчке ошибки в студию |
Сообщ.
#7
,
|
|
|
а jdk настроен?
|
Сообщ.
#8
,
|
|
|
Цитата и как собрать этот код до .апк и Цитата extends JFrame Не вижу причин, чтобы этот код работал в apk Думаю, изначально, надо установить sdk для андройда, затем писать код под него, а не использовать Swing, и недоумевать, почему он не работает в apk |
Сообщ.
#9
,
|
|
|
Цитата VisualProg @ Цитата и как собрать этот код до .апк и Цитата extends JFrame Не вижу причин, чтобы этот код работал в apk Думаю, изначально, надо установить sdk для андройда, затем писать код под него, а не использовать Swing, и недоумевать, почему он не работает в apk Да. Этот код не под Андроид. А как его переделать под SDK? Может, кто сталкивался с хожими проблемами? Мне нужно под Андроид тач. Есть код. Читал. Под SDK тач. Сейчас. Вот , например. http://elsof.ru/android/tutorial/lesson-10...vennih-kasaniy/ но встречаю обработку касаний. именно обработку, а как бы вытащить данные и нажать программно? Может всё-таки , кто сталкивался в играх или ещё где... Добавлено уже jdk настроено. откомпилилось, но не для андроида. |
Сообщ.
#10
,
|
|
|
Цитата А как его переделать под SDK? Не под SDK, а под андройд. Никак. К тому же, в андройде нет мыши... Андройд программирование, ровно как и J2ME отличается от обычного написания программ на java (где то требуется оптимизация, где то знание как вообще пакуется фрейм или компаненты для нужного телефона с конкретной операционкой) В ведройде требуется сделать xml конфигурацию под каждый будущий фрейм, далее, SDK поможет распарсить фрейм в низкоуровневый список констант и объекты. Не смотря на то, что в андройде ресурсов может быть на порядок больше чем в телефоне использующем J2ME приложение, весь твой код транслируется самим SDK в пригодный для андройда вид. (так ты можешь использовать привычное написание классов и использование всех технологий jre 1.7, или выше) В общем, это огромная тема, здесь тебе надо прочитать несколько книг, чтобы понять, что тебе вообще надо сделать, ну, или хотя бы одну, следуя практическим урокам... Цитата откомпилилось, но не для андроида. Тебе ужно наследовать класс, инициализирующий точку входа для андройда. Цитата но встречаю обработку касаний. Обычный listener, читай список слушателей у контроллов, там всё есть. |
Сообщ.
#11
,
|
|
|
http://stackoverflow.com/questions/1492819...nt-or-other-way
нашел ответ на сайте gsnfkcz jnrjvgbkbnm 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; объявил. не видит тачивент строковый динамический массив, в цикле не ввидит. Что делать? И вообще до проекта не могу довести код по ссылке |
Сообщ.
#12
,
|
|
|
Цитата TAG = null; объявил. ну, и что ты хочешь от объекта, который ссылается на null? Цитата не видит тачивент строковый динамический массив, в цикле не ввидит ты сам его скрыл от protected класса Ехс2 public static void main(String args[]) Определись, что ты хочешь делать... Если тебе нужен андройд, используй Activity. Цитата И вообще до проекта не могу довести код по ссылке То ли у тебя каша в голове, то ли ты основ не знаешь Без основ всё без толку, почитай чего нибудь... |