Tag: focus

在JOptionPane.showOptionDialog()中设置组件焦点

为了在输入对话框中有自定义按钮标题,我创建了以下代码: String key = null; JTextField txtKey = new JTextField(); int answerKey = JOptionPane.showOptionDialog(this, new Object[] {pleaseEnterTheKey, txtKey}, decryptionKey, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] {okCaption, cancelCaption}, okCaption); if (answerKey == JOptionPane.OK_OPTION && txtKey.getText() != null) { key = txtKey.getText(); } 如何在显示对话框时将焦点 (光标)移动到文本字段? UPDATE 这对我不起作用,我的意思是文本字段没有焦点:操作系统:Fedora – Gnome public class Test { public static void main(String[] args) […]

在JTextField上设置光标

我在Java中创建一个使用JTextField的小应用程序。 现在,我希望,一旦我运行应用程序,光标就会自动放入其中,这样用户就不必单击它然后写入文本。 我已经尝试了几乎我在网上找到的所有东西:setCaretPosition(0),grabFocus(),requestFocusInWindow()或requestFocus()但它们都没有工作! 我很绝望,你能帮我解决一下吗? 非常感谢

按Enter键切换JTextFields

我创建了多个文本字段,我想知道如何通过按Enter键在字段之间切换焦点。 另外,我可以控制目标字段吗? 例如,我可以通过按field A的Enter来定义焦点将更改为field C吗?

如何在按下单独的JBtton时停止使用DefaultCellEditor进行编辑

我得到了一个带有自定义TableCellEditor(扩展DefaultCellEditor)的表,其中JFormattedTextField作为编辑器组件。 现在我遇到了问题:当我在编辑时按下一个单独的按钮。 当按下按钮时,编辑器保持“打开并激活”,同时我希望它停止编辑,以便所做的更改可用于按钮引起的操作。 因此,当按下一个不同的按钮时,如何使编辑停止。 我为JFormattedTextField尝试了setFocusLostBehavior(JFormattedTextField.COMMIT) ,但它似乎没有效果。 希望有人有一些好主意=)

JCombobox focusLost没有解雇 – 为什么会这样?

我的代码中有一个JCombobox 。 我添加了FocusLost event 。 但无论如何它并没有被解雇。 我已经尝试了很多时间,但没有找到解决方案。 jcbItemType.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { jcbItemTypeFocusLost(evt); } }); private void jcbItemTypeFocusLost(java.awt.event.FocusEvent evt) { // TODO add your handling code here: System.out.println(“name=” + ((Component) evt.getSource()).getName()); System.out.println(“index=” + jcbItemType.getSelectedIndex()); } 但是在控制台中没有打印出来 请告诉我我做错了什么。

获得对JPanel的关注

我在JFrame有一个JPanel 。 我已经注册了一个KeyListener ,我想根据它更新JPanel 。 我遇到的问题是我无法将注意力集中在JPanel ,因此我的KeyListener将无法工作。 我已经知道KeyListener是有用的,因为我用JFrame注册它并且它工作正常。 我的代码目前是这样的: myFrame.setFocusable(false); myPanel.setFocusable(true); myPanel.addKeyListener(myKL); myFrame.add(myPanel); 以前有人遇到过这样的问题吗? 我有什么遗漏吗? PS:我在JPanel没有任何组件我只是在背景上绘制一个Image,所以我需要把焦点放在JPanel本身而不是内部的东西上。

未聚焦组件中的KeyPressed和mousePressed事件

有哪些方法可以检测关键笔划而无需关注事件实施的组件? 这是我的想法: 即使没有关注myComponent ,在按下某个键时,该动作也应该参与其中。 ** mousePressed事件的相同问题。 即使未单击组件,也会检测到鼠标单击。** myComponent.addKeyListener( new KeyAdapter() { @Override public void keyPressed( KeyEvent e ){ // My action here } }); 在回答Question1 ,即使应用程序在后台运行,它也可以完成吗? 假设我有一个浏览器,每次单击或按键时,都会执行给定的操作。 我也接受建议作为答案阅读。 如果您的答案与KeyBinding相关,请详细说明。 所有答案和评论将不胜感激。 我在这里使用了JNativeHooks 示例 ,它的工作原理非常好。 只有Java的任何其他方法?

FocusEvent没有得到JFormattedTextField的最后一个值,我怎么能得到它?

我的JFrame对象上有两个JFormattedTextField对象。 我希望通过这些JFormattedTextField对象的值进行基本的Math(加法)。 当焦点丢失第一个或第二个文本字段时,我希望它发生。 但是当“ focusLost() ”,事件没有得到最后一个值时,它会得到之前的值。 例如; tf1为0, tf2为0。 我将2写入tf1 ,当focusLost() ,结果( tf1+tf2 )变为静止0.当我更改其中任何一个时,结果变为2(前一个值) 如何获取focusLost上的最后一个值? 这是我的代码: JFormattedTextField tf1,tf2; NumberFormat format=NumberFormat.getNumberInstance(); tf1=new JFormattedTextField(format); tf1.addFocusListener(this); tf2=new JFormattedTextField(format); tf2.addFocusListener(this); 和focusLost() : public void focusLost(FocusEvent e) { if(tf1.getValue() == null) tf1.setValue(0); if(tf2.getValue() == null) tf2.setValue(0); //because if I dont set, it throws nullPointerException for tf.getValue() BigDecimal no1 = new […]

JavaFX:如何更改焦点遍历策略?

在JavaFX中是否可以更改焦点遍历策略 ,例如在AWT中? 因为我的两个HBox的遍历顺序是错误的。