Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает java код

Илья Купастим Ученик (75), на голосовании 1 год назад
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Robot;


public class Main extends JFrame implements KeyListener {

public Main() throws AWTException {
setSize(100,100);
setVisible(true);
addKeyListener(this);
}


public static void main(String[] args) throws AWTException {
Main f = new Main();






}

@Override
public void keyTyped(KeyEvent e) {

}
Robot robot = new Robot();

@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()== KeyEvent.VK_RIGHT){

robot.keyPress(KeyEvent.VK_7);





}

}

@Override
public void keyReleased(KeyEvent e) {

}
}

при нажатии стрелки в право должно печататься 7 почему этого не происходит ?
Голосование за лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264349) 1 год назад
Код не работает, так как экземпляр класса Robot создается вне метода, в частности, вне метода main, который запускается при запуске программы. Правильный код может выглядеть так:


import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Robot;


public class Main extends JFrame implements KeyListener {

private Robot robot;

public Main() throws AWTException {
setSize(100,100);
setVisible(true);
addKeyListener(this);
robot = new Robot();
}


public static void main(String[] args) throws AWTException {
Main f = new Main();
}

@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_RIGHT){
robot.keyPress(KeyEvent.VK_7);
}
}

@Override
public void keyReleased(KeyEvent e) {

}
}
Apple M5 Оракул (59840) 1 год назад
 import javax.swing.*; 
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Robot;

public class Main extends JFrame implements KeyListener {
public Main() throws AWTException {
setSize(100,100);
setVisible(true);
addKeyListener(this);
}

public static void main(String[] args) throws AWTException {
Main f = new Main();
}

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_7);
robot.keyRelease(KeyEvent.VK_7);
} catch (AWTException ex) {
ex.printStackTrace();
}
}
}

@Override
public void keyReleased(KeyEvent e) {
}
}
Dhill Профи (606) 1 год назад
Вы не вызываете метод keyRelease, который отпускает клавишу 7, что приводит к тому, что 7 не печатается. Добавьте robot.keyRelease(KeyEvent.VK_7); после robot.keyPress(KeyEvent.VK_7); в методе keyPressed.
Похожие вопросы