gpt4 book ai didi

java - 关于创建 Java 屏幕键盘的建议

转载 作者:行者123 更新时间:2023-11-30 09:35:58 27 4
gpt4 key购买 nike

我想创建一个屏幕键盘,这样当文本字段获得焦点时,键盘就会出现在屏幕上,而当焦点丢失时,或者如果在屏幕外单击,键盘就会消失。

这不是问题,问题是我不确定应该使用什么来创建这样的键盘。我不能使用 jFrame,因为如果我在键盘窗口外单击,键盘就会进入后台并且不会关闭。我也不能使用 jDialog 因为它不允许我们在窗口外点击。

我还希望能够实时显示一个文本框,其中包含键盘输入的内容(当我单击屏幕键盘上的键时,它应该出现在文本框中)。我正在 netbeans 中执行此程序,所以如果您能记住这一点,那将会很有帮助。

最佳答案

我不确定我是否理解这里的要求,但看看这个例子是否能给你一些想法。

它的基本目的是确保周围有“空白”(在这个例子中是 OK RED/ORANGE,但我们不要对灰色阴影争论不休)可以成为焦点的组件。向其添加鼠标监听器,并在发生事件时请求焦点(或者在您的情况下,隐藏键盘)。

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class ComponentFocus {

ComponentFocus() {
final JPanel gui = new JPanel(new GridLayout(0,1,15,15));
gui.setFocusable(true);
gui.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent me) {
System.out.println(me);
gui.requestFocus(true);
}
});
gui.setBackground(Color.RED);
gui.addFocusListener(new FocusAdapter(){
@Override
public void focusGained(FocusEvent fe) {
gui.setBackground(Color.ORANGE);
}

@Override
public void focusLost(FocusEvent fe) {
gui.setBackground(Color.RED);
}
});

JButton button1 = new JButton("button1");
gui.add(button1);
JButton button2 = new JButton("button2");
gui.add(button2);

JOptionPane.showMessageDialog(null, gui);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ComponentFocus();
}
});
}
}

关于java - 关于创建 Java 屏幕键盘的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com