Я хочу создать программу, которая запускает текстовое поле. В текстовом поле я могу написать команды, которые запустит другой процесс.отправить команды для обработки
Пример: Текстовое поле: «открыть firefox olaf» Затем программа запускает firefox. Олаф - это сигнал, который заканчивается командой .
Моя программа сравнения TextField String
массив с командами String
массива и, если, например слово «открыть» равный как в струнной массиве запускать в методе переключатель случае следующий метод «открытой». это хорошо работает.
Моей проблема: Теперь я хочу такую команду: TextField: «типа в FireFox www.web.de Олафа» программка должна сосредоточена на светлячок и должны TypeN в светлячок «www.web.de» , но я не знаю, как это сделать. Я не хочу использовать класс робота с robot.keyPressed()
Также я хочу набрать текстовое поле на веб-сайтах.
Почему я это делаю? Я просто хочу изучать Java и использовать голосовые речи, поэтому мне не нужно вводить «open firefox olaf». Я просто сказал, что это;)
, если мне нужно сделать с C++ это нормально
import java.awt.BorderLayout;
import java.awt.Robot;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class KeyEventClass extends JFrame implements KeyListener, FocusListener {
private static final long serialVersionUID = 1L;
public KeyEventClass(){
this.setLayout(new BorderLayout());
JTextField field = new JTextField();
field.addKeyListener(this);
this.add(field, BorderLayout.CENTER);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent e){
field.requestFocus();
field.setText("");
}
});
}
String[] Commands = {"open"};
String[] Input = {"","","","","","","","","","","","","","",""} ;
int i = 0;
// Save the input in the String[] Input Variable but without VK_SPACE
public void keyPressed(KeyEvent e){
if(i > 20) { System.out.println("Error Index over..");}
if(e.getKeyChar()==KeyEvent.VK_SPACE){
i++;
}
if(e.getKeyChar() != KeyEvent.VK_SPACE) Input[i] += e.getKeyChar();
}
// Compare Input and Commands
public void keyReleased(KeyEvent e) {
if(Input[i].compareTo("olaf")==0){ // olaf is a Signal of the end of the command line
for(int k =0; k< Commands.length;k++){
for(int z=0; z < Input.length;z++){
if(Input[z].compareTo(Commands[k])==0){
switch(k){
case 0: open(Input[z+1]); //after start follow the name of the process
System.out.println("case0 = open");
delete();
break;
}
}
}
}
}
}
public void open(String process){
try {
Robot robot= new Robot();
ProcessBuilder pb = new ProcessBuilder("cmd", "/c",
"C:\\Verknupfung\\"+process+".lnk"); //"C:\\Verknupfung\\" is a Path to start Process
pb.start();
robot.delay(1000);
this.requestFocus(); //set focus on KeyEventClass after start process
} catch (Exception x) {System.out.println("Error to starts process:"+x);}
}
public void delete(){
for(int k=0;k< Input.length;k++) Input[k] = "" ;
i=0;
}
public static void main(String[] args) {
new KeyEventClass();
}
public void keyTyped(KeyEvent e) {
}
@Override
public void focusGained(FocusEvent arg0) {
}
@Override
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
}
}
Пожалуйста, найдите время, чтобы прочитать: http://stackoverflow.com/tour – Jayan
Предполагая, что это не какое-то домашнее задание: вы можете предпочесть не изобретать колесо. Вместо этого, может быть, вы хотите создать что-то, что позволяет вам тестировать веб-страницы в firefox? Если это так, вам следует провести некоторое исследование инструментов тестирования, таких как фитнес или другие, которые могут дать вам то, что вам нужно. – GhostCat
С не видом домашней работы. Я хочу изучать Java и с помощью этой программы я могу использовать речевые речи, поэтому мне не нужно вводить «open firefox olaf» –