Tag:

Java – 如何为JButton应用3个键的键盘快捷键?

目前我正在使用“Ctrl + Space”快捷方式在我的Java代码中触发JButton事件,如下所示: this.getRootPane().registerKeyboardAction( addStudentButtonActionListener, KeyStroke.getKeyStroke( KeyEvent.VK_SPACE, KeyEvent.CTRL_MASK ), JComponent.WHEN_IN_FOCUSED_WINDOW ); 但我想为此事件指定“Shift + Ctrl + Space”的快捷方式。 我怎样才能做到这一点 ?

使用keyPressed检测键盘方向键

G’day全部, 在这里了解到Java控制台不支持键盘输入后,我切换到了Swing和AWT。 我现在的问题是如何检测键盘方向键(非数字小键盘)的使用时间。 按下向下,向上,向左,向右键时,我的代码(下面)不会打印“小方块”字符。 例如,这个小方框字符与CTRL和ALT键使用的字符没有什么不同。 有谁知道键盘方向键的实际身份是什么,以便我可以在我的应用程序中为它们编码? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyChecker extends JFrame { JLabel keyLabel = new JLabel(“Hit any key”); public KeyChecker() { super(“Hit a Key”); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new FlowLayout(FlowLayout.CENTER)); KeyMonitor monitor = new KeyMonitor(this); setFocusable(true); addKeyListener(monitor); add(keyLabel); setVisible(true); } public static void main(String[] arguments) { new KeyChecker(); } […]

Swing中的本地化加速器(JMenuItem热键)

我正在使用德语笔记本电脑上的英语应用程序,通过西class牙语操作系统。 即使我在我的应用程序的开始时明确设置Locale.setDefault(Locale.ENGLISH),我也看到菜单中的hotkexs CTRL + Mayúsculas + C 代替 CTRL + SHIFT + C 我传递给KeyStroke对象。 这个词不仅没有像我指定的那样被本地化为英语,而且它还将SHIFT键映射到MAYUS(英语中的CAPS LOCK),所以我想这不仅是一个语言问题,也是键图。 那么如何为所有GUI组件强加英语呢? 谢谢!

如何在java中为jbutton添加快捷键?

我有一个jButton我想在它上面分配一个快捷方式。 就像我在键盘上按下删除它只需点击一次jButton。 我怎样才能做到这一点?

Firebase在不同设备/ Android版本上以不同顺序返回子节点的键

我从Firebase数据库获取数据快照以检索用户列表,但返回的键的顺序因使用的Android版本/设备而异。 出于演示目的,我缩短了方法,但基本上如下: public void getUsers(){ Firebase ref = new Firebase(“https://myFirebaseID.firebaseio.com”); final Firebase userRef = ref.child(“users”); userRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { snapshot.toString(); } }); } 它是我在快照对象(snapshot.toString())上调用toString()获得的数据,它改变了顺序。 我在4台设备上试过了。 2个运行的Lollipop(Nexus 7 5.1.1和Galaxy s4 5.01)以相同的顺序返回数据。 另外两个设备(HTC Sensation 4.0.3和Motorola G2 4.4.4)以相同的顺序返回数据(但与Lollipop设备的顺序不同)。 所使用的代码没有区别,并且在检索快照时数据库中的数据完全没有变化。 以下是4.4.4和4.0.3设备上的数据顺序: DataSnapshot { key = users, value = { 114585619420240714499={ **userIDOfCUser**=114585619420240714499, **NameOfCUser**=testName, **EmailOfCUser**=testerfireapp@gmail.com, **friends**={ […]

如何使用两个数字作为Map键

我有两个数字,我想将它们一起用作Map的键。 目前,我正在连接他们的字符串表示。 例如,假设密钥号是4和12.我使用: String key = 4 + “,” + 12; 地图声明为Map 。 我觉得这太糟糕了! 我喜欢使用String以外的东西作为关键! 我想要以最快的方式创建这些密钥。 谁有个好主意?

如何在Java中检查启动时按下的键

我正在尝试编写一个程序首次启动时弹出的分辨率选择对话框。 为了防止用户厌烦,我想实现相当标准的function,您可以使用复选框关闭该对话框,但在启动时按住alt键将其取回。 不幸的是,没有明显的方法来询问java 当前是否正在按下给定的键。 您只能注册以通过KeyListener通知新的按键操作,但如果按键在应用程序启动之前启动,则无效。

如何使用自定义键类型使HashMap正常工作?

我认为我的问题很简单,但我找不到解决方案所以我决定在这里问一下。 我需要的是使用这样的自定义Key类型创建一个HashMap : HashMap<Pair, StrategyPoint> myMap = new HashMap<Pair, StrategyPoint> (); 但是我在这里遗漏了一些东西,因为HashMap停止正常工作。 首先,Key变得不唯一,并且可以在keySet找到具有相同值的Pair的不同实例。 包含键function也不像我想的那样工作:)。 我明显错过了一些东西,更有可能我应该以某种方式定义一种方法来比较我的Pair类中的实例。 但是我尝试在我的Pair类中使用compareTo实现Comparable,但它仍然无效。 有什么建议么? 我的原始代码有点混乱,读起来不友好,所以我举一个例子来说明我的问题。 这是代码: HashMap<Pair, StrategyPoint> myMap = new HashMap<Pair, StrategyPoint> (); Pair myPair = new Pair(2,2); StrategyPoint myPoint= new StrategyPoint(2, 2, 5, 5, false); myMap.put(myPair, myPoint); Pair searcher = new Pair (0,0); searcher.setFirst(2); searcher.setSecond(2); System.out.println(myMap.containsKey(searcher)); System.out.println(myMap.containsKey(myPair)); 执行的结果是: false true […]

Java – 属性:在运行时向属性文件添加新密钥?

是否可以创建新的属性文件并在运行时添加键和值? 我想在安装我的应用程序时根据用户输入向属性文件添加新键。 我查看了Java Properties类,但它似乎可以为现有键设置值,但无法向属性文件添加新键。

在java中使用多种类型的值进行映射

我必须完成一个奇怪的特殊场景。 其描述如下: 我必须设计一个Map,其中’ Keys ‘总是String类型。 但是,其中一个键的’ Value ‘可能是String或List (取决于特定键可以具有的值的数量。如果该特定键只有一个值,则’Value’将是一个String,并且它必须如果密钥包含许多值,则为List。 如何完成这种情况? 例如:地图中有2个键,即“姓名”和“电话号码”。 一个人只能有一个姓名和多个电话号码。 所以这里的第一个键,即“Name”应该具有Value的’String’类型,而对于第二个键,即“Phone Nos”应该具有Value的’List’类型。 如何申报这样的地图。 可能吗?