标签: keyevent

如何从另一个类更改Java中框架的背景颜色?

我有以下内容:

import javax.swing.JFrame;

public class Directions {

    public Directions(){
        JFrame frame = new JFrame("Direction");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new DirectionPanel());
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        Directions myTest = new Directions();
    }
}
Run Code Online (Sandbox Code Playgroud)

第二课:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class DirectionPanel extends JPanel{
    public DirectionPanel(){
        addKeyListener(new DirectionListener());
        setBackground(Color.yellow);
    }

    private class DirectionListener implements KeyListener{

        @Override
        public void keyPressed(KeyEvent e) {
            //JOptionPane.showMessageDialog(null, "Hello Johnny");
            int keyCode = e.getKeyCode();
            if (keyCode == KeyEvent.VK_LEFT){
                setBackground(Color.red);
            }
            repaint();
        }

        @Override
        public void …
Run Code Online (Sandbox Code Playgroud)

java swing keyevent jpanel

1
推荐指数
1
解决办法
2万
查看次数

将按钮单击事件传递给actionPerformed按下按键

我正在进行必须使用AWT完成的Java任务.我想在按钮处于焦点时按下回车键来触发按钮.我想知道如何使用doClick()方法在Swing中执行此操作,但这似乎在AWT中不起作用.到目前为止我正在尝试这个:

button.addActionListener(this); // Passes value from a TextBox to actionPerformed() 

button.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
         if(e.getKeyCode()==KeyEvent.VK_ENTER) {
              actionPerformed(null);
         }
    } 
});

public void actionPerformed (ActionEvent e) {
     try {  
          if (e.getSource() == button) {
               // Stuff I want to happen
          } else if (e.getSource() == anotherButton) {
               // Other Stuff
          } else {     //third button
               // More stuff
          }
     } catch (NumberFormatException nfe) { 
          // Null argument in keyPressed triggers this
          // catches empty string exception from …
Run Code Online (Sandbox Code Playgroud)

java awt keyevent keylistener actionlistener

1
推荐指数
1
解决办法
2万
查看次数

在QT中处理左右键事件

我有一个QTabWidget在我的QT窗口中,它似乎吞下了左/右按键事件.在主窗口中,我有以下功能:

void VisionWindow::keyPressEvent(QKeyEvent* event) {
    std::cout << event->key() << "\n";
}
Run Code Online (Sandbox Code Playgroud)

当我按下除左或右之外的任何键时,处理程序将关闭并将键代码打印到控制台.当我按下左边或右边,它移动到下一个左侧的标签窗口小部件(或右)选项卡和VisionWindowkeyPressEvent方法永远不会触发.

我试图用一个忽略该事件的子类来解决这个问题:

class KeylessTabWidget : public QTabWidget {
    public:
        KeylessTabWidget(QWidget* parent) : QTabWidget(parent) {}
        void keyPressEvent(QKeyEvent* event) { event->ignore(); std::cout << "ignored an event\n"; }
};
Run Code Online (Sandbox Code Playgroud)

与主窗口类似,只有在按下左或右按键时才会调用此窗口.我也看到基于焦点的位置,有时向左或向右击中会将焦点切换到主窗口中的不同小部件,如复选框.如果有任何方法可以回收左右键,或者我应该接受这些在QT中被广泛使用并默认切换到其他东西?

更新:

最后我用#include <QApplication>一起qApp->installEventFilter(this);在我的窗口构造.缺点是标签小部件仍在切换标签.这似乎是一个linux问题.从好的方面来说,我能够捕获所有关键事件.我正在让子窗口小部件吞下其他键的事件,这解决了它.

qt keyevent

1
推荐指数
1
解决办法
6258
查看次数

KeyPressed事件没有发生?

这段代码构建正确,一切似乎都有效,但键无效.我认为它是动作监听器或椭圆形不更新.我正在尝试通过初学者java游戏编程.我相信这很容易,但我没有抓住它.如果这有所不同,我在sublime text 2中使用mac.

package javagame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaGame extends JFrame {

int x, y;

public class AL extends KeyAdapter {

    public void keyPressed(KeyEvent e) {
        int keycode = e.getKeyCode();
        if(keycode == e.VK_LEFT); {
            x-= 3;
        }
        if(keycode == e.VK_RIGHT); {
            x+= 3;
        }
        if(keycode == e.VK_UP); {
            y-= 3;
        }
        if(keycode == e.VK_DOWN); {
            y+= 3;
        }
    }


    public void keyReleased(KeyEvent e) {

    }
}

public JavaGame() {
    addKeyListener(new AL());
    setTitle("Jave Game");
    setSize(700, 700); …
Run Code Online (Sandbox Code Playgroud)

java swing keyevent keylistener

1
推荐指数
1
解决办法
1973
查看次数

方括号的键码是什么?

我正在尝试在Java中使用Robot类并输入一些文本.不幸的是,我在找到方括号的键码,这个符号|和这个符号时遇到了问题.我无法在KeyEvent常量中找到它们.我想使用它们,因为我输入的文本是西里尔字母,这些符号代表字母表中的字符.提前致谢.

java keycode keyevent

1
推荐指数
1
解决办法
2315
查看次数

KeyEvent没有开火?

我有一个班级世界如下:

public class World extends JFrame implements KeyListener {
    public boolean left = false, right = false, back = false, fwd = false;

    public World() {
        this.setSize(600, 600);
        this.setVisible(true);
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if(e.getExtendedKeyCode() == KeyEvent.VK_LEFT) left = true;
        if(e.getExtendedKeyCode() == KeyEvent.VK_RIGHT) right = true;
        if(e.getExtendedKeyCode() == KeyEvent.VK_UP) fwd= true;
        if(e.getExtendedKeyCode() == KeyEvent.VK_DOWN) back = true;
        System.out.println("L:"+left+" R:"+right+" F:"+fwd+" B:"+back);
    }

    @Override
    public void keyReleased(KeyEvent e) {
        if(e.getExtendedKeyCode() == KeyEvent.VK_LEFT) left = false;
        if(e.getExtendedKeyCode() == KeyEvent.VK_RIGHT) right …
Run Code Online (Sandbox Code Playgroud)

java swing keyevent keylistener

1
推荐指数
2
解决办法
3478
查看次数

关键事件仅有时注册

老实说,我不知道我做错了什么.

有时,关键事件会记录,有时则不会.
我的意思是,有时当我运行Frogger2时,我会注册事件,有时甚至没有.

当关键事件记录或不记录时,它似乎是完全随机的.通常,如果我暂时不测试任何东西并运行Frogger2事件注册,当我关闭它并重新运行完全相同的程序时,我没有事件.

请帮忙.

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

public class Frogger2 extends JPanel {

public static JFrame frame;
public static Frogger2 F;

public Frogger2() {}

public Dimension getPreferredSize() { return new Dimension(500,500); }
public void paintComponent(Graphics g) { super.paintComponent(g); }


private int fdir;

public void moveLeft() {
    travel(2);
}
public void moveRight() {
    travel(0);
}
public void moveUp() {
    travel(3);
}
public void moveDown() {
    travel(1);
}
private void travel(int ddd) {
    System.out.println(ddd); …
Run Code Online (Sandbox Code Playgroud)

java events swing key-events keyevent

1
推荐指数
1
解决办法
131
查看次数

evt.ctrlKey在jquery keyup事件中返回false

我目前正在开发一个Web应用程序,它要求我检测是否按下了控件.

如果按下的键是ctrl,则使用keydown事件将标志设置为true,然后使用keyup事件将该标志设置为false.evt.ctrlKey如果按下的键是控制键,我正在使用轻松返回true.

但令我惊讶的是,我可以看到evt.keyCode等于17,同时evt.ctrlKey给我一个假.

这不会发生在keydown事件中.

请看这个简单的小提琴复制.我正在使用Firefox 27.

PS:我知道我可以测试keyCode是否为17,但我想知道我是否错过了什么.

javascript jquery keyevent

1
推荐指数
1
解决办法
3595
查看次数

Java KeyBindings组合不起作用

我正在努力创造一种识别关键组合的方法.在我甚至可以设置任何布尔值之前,我注意到某些键组合会导致忽略其他键.

package question;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

public class Example extends JPanel {

/**
 * 
 */
private static final long serialVersionUID = 1L;

public Example() {

    setBackground(Color.DARK_GRAY);
    setPreferredSize(new Dimension(500,500));
    setFocusable(true);
    requestFocusInWindow();

    getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), "action_a");
    getActionMap().put("action_a", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("A has been pressed!");
        }
    });
    getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_S, 0), "action_s");
    getActionMap().put("action_s", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("S …
Run Code Online (Sandbox Code Playgroud)

java windows events combinations keyevent

1
推荐指数
1
解决办法
77
查看次数

使用JavaFX 8场景,在运行时读取键盘输入

我的JavaFX 8场景很顺利.现在,当其他所有事情发生时,我想在程序运行时不断检查任何KeyEvent/KeyCode.我有一个名为时间轴的时间轴设置为INDEFINITE,我将循环计数设置为无限期

timeline.setCycleCount(Timeline.INDEFINITE);
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单的方法,也很干净,不会让我的程序不稳定.

java javafx keycode keyevent scene

1
推荐指数
1
解决办法
1万
查看次数