相关疑难解决方法(0)

应用程序范围的键盘快捷键 - Java Swing

我想为Java Swing应用程序创建一个应用程序范围的键盘快捷方式.循环所有组件并在每个组件上添加快捷方式,具有焦点相关的副作用,并且看起来像是一个强力解决方案.

谁有清洁解决方案?

java swing keystroke shortcut

30
推荐指数
4
解决办法
3万
查看次数

在不停用窗口的情况下捕获JFrame中的所有事件

我正在尝试开发类似远程桌面/ VNC客户端的东西.我有必要捕获客户端窗口中的所有事件.我正在使用的processEvent方法是覆盖以下方法JFrame:

@Override
protected void processEvent(AWTEvent e) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,在Windows键或Alt+Tab窗口等事件被取消激活时:

...    
00000191 KEY_PRESSED,keyCode=524,keyText=Windows,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=91,primaryLevelUnicode=0,scancode=91,extendedKeyCode=0x20c 
00000192 KEY_RELEASED,keyCode=524,keyText=Windows,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=91,primaryLevelUnicode=0,scancode=91,extendedKeyCode=0x20c 
000000ce WINDOW_DEACTIVATED,opposite=null,oldState=0,newState=0 
...
Run Code Online (Sandbox Code Playgroud)

如何让窗口保持活动状态?

更喜欢纯Java解决方案.如果没有纯Java解决方案,有人可以指向我的JNA解决方案(或任何其他解决方案)?

EDIT1: *解决了窗口停用的模糊术语"焦点"*强调非纯Java解决方案是可以接受的

java events swing event-handling

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

全屏窗口不会使用KeyListener或KeyBoardFocusManager获取键盘输入

我在使用KeyBoardFocusManger全屏工作时遇到了问题Window.无论如何,它都不会得到键盘输入.我使用a System.exit(0)和a println()来查找对keypressed/release/typed方法的任何调用,但不会抛出任何错误.我试过了KeyListeners; 但我看了以后这个,我改变了一个KeyboardFocusManager,同样的事情仍然发生.我真的很绝望; 从我可以判断,Window是不是得到了键盘的焦点?

这是我的主要内容:

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            // Determine if full-screen mode is supported directly
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice gs = ge.getDefaultScreenDevice();
            if (gs.isFullScreenSupported()) {
                Frame frame = new Frame(gs.getDefaultConfiguration());
                SpaceInvaderUI spaceInvaderUI = new SpaceInvaderUI(frame);
                // Enter full-screen mode
                gs.setFullScreenWindow(spaceInvaderUI);
            } else {
                JOptionPane.showMessageDialog(null, "Does not support full screen!", "Error 0x01", JOptionPane.ERROR_MESSAGE); …
Run Code Online (Sandbox Code Playgroud)

java swing fullscreen keylistener key-bindings

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

MouseListener/KeyListener无法正常工作(JPanel)

我正在做一个涉及JPanel中的鼠标和关键监听器的小项目.不幸的是,当我使用鼠标/键盘时,没有一个方法被调用.之前我曾使用过JPanels/JFrame/JApplet和JComponents.代码段如下所示:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.File;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.util.Scanner;

public class Hello extends JPanel implements KeyListener, MouseListener{
    JPanel panel = new JPanel();
    JFrame frame = new JFrame();
    public Hello(){
        addKeyListener(this);
        addMouseListener(this);
    }
    public static void main(String [] args){
        Hello play = new Hello();
        play.setPanel();
    }
    public void setPanel(){
        panel.setLayout(null);
        frame.add(panel);
        frame.setLayout(null);
        panel.setBounds(0,0,100,100);
        frame.setVisible(true);
        panel.setVisible(true);
        panel.setFocusable(true);
        frame.setSize(100,100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void keyTyped(KeyEvent evt){
        System.out.println("keytyped");
    }
    public void …
Run Code Online (Sandbox Code Playgroud)

java swing keylistener jpanel mouselistener

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

Java和Swing与游戏循环

(不是这样)这里的简短问题.我正在制作一个简单的roguelike,使用Swing作为UI而不是控制台(这使得它更容易在Eclipse中工作,除其他外)但我似乎遇到了障碍.

我遇到的麻烦是,当我进入游戏循环时,UI将无法正常显示.我得到一个丑陋的窗框,在整个过程中给我"单人纸牌"的效果,而在运行它时,它的RAM使用量会迅速增长.

我在这里错过了一些关于Swing的批评吗?我是否必须使用Swing的并发设置来执行此操作?如果是这样,最好的方法是什么?

完整代码如下:

package roguelike;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.LinkedList;

import javax.swing.*;
import javax.swing.text.*;

public class roguelike {
    Color c_black = new Color(0x000000);
    Color c_white = new Color(0xffffff);
    Color c_red = new Color(0xff0000);
    Color c_blue = new Color(0x0000ff);
    Color c_green = new Color(0x00ff00);

    UI ui = null;
    Player me = null;
    Map gamemap = null;
    LinkedList<Character> keyqueue = new LinkedList<Character>();

    int charheight = 20;
    int charwidth = 80;

    public static …
Run Code Online (Sandbox Code Playgroud)

java swing game-loop roguelike

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