- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在用户通过我的表单中的 JTextFields 和 JSpinners 切换时实现自动选择。为此,我正在使用这个监听器:
public class AutoSelect implements FocusListener {
@Override
public void focusGained(final FocusEvent e) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
if (e.getSource() instanceof JTextField) {
try {
JTextField t = (JTextField) e.getComponent();
t.selectAll();
} catch (ClassCastException ex) {
//
}
}else if (e.getSource() instanceof JSpinner){
JSpinner spinner = (JSpinner)e.getComponent();
JTextField tf = ((JSpinner.DefaultEditor)spinner.getEditor()).getTextField();
tf.selectAll();
}
}
});
}
@Override
public void focusLost(FocusEvent e) {
//
}
}
只是它对我的微调器不起作用。事件被触发,正确的行被执行,但什么也没有发生。我怀疑我没有正确使用 .getTextField() 。有人对此有可行的解决方案吗?
最佳答案
tf.selectAll();
应该被包装到 invokeLater
中,一切都包含Focus
是相当异步的(更多内容在 Oracle 教程 How to use Focus, FocusSubsystem
),
然后 invokeLater
(并非在所有情况下都适用于所有 JComponents
,但是默认情况下)对于 JTextComponents
将此事件移动到队列的末尾,非常适合我
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ComboBoxTwo extends JFrame {
private static final long serialVersionUID = 1L;
private JTextField text = new JTextField(15);
private JSpinner spinner = new JSpinner(new SpinnerNumberModel(0, 0, 15, 1));
public ComboBoxTwo() {
text.setText("Something selectable");
text.addFocusListener(fcsListener);
JFormattedTextField format = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField();
// or JTextField tf = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField();
format.addFocusListener(fcsListener);
//or tf.addFocusListener(fcsListener); // depends of type for SpinnerXxxModel
add(text, BorderLayout.NORTH);
add(spinner, BorderLayout.SOUTH);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new ComboBoxTwo();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
//
private FocusListener fcsListener = new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
dumpInfo(e);
}
@Override
public void focusLost(FocusEvent e) {
dumpInfo(e);
}
private void dumpInfo(FocusEvent e) {
System.out.println("Source : " + name(e.getComponent()));
System.out.println("Opposite : " + name(e.getOppositeComponent()));
System.out.println("Temporary: " + e.isTemporary());
final Component c = e.getComponent();//works for editable JComboBox too
if (c instanceof JFormattedTextField) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
((JFormattedTextField) c).setText(((JFormattedTextField) c).getText());
((JFormattedTextField) c).selectAll();
}
});
} else if (c instanceof JTextField) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
((JTextField) c).setText(((JTextField) c).getText());
((JTextField) c).selectAll();
}
});
}
}
private String name(Component c) {
return (c == null) ? null : c.getName();
}
};
}
关于java - JSpinner:自动选择 onFocus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20971050/
有没有什么办法,如果您在同一页面上有 2 个或更多打开的选项卡,当您聚焦一个选项卡时,所有其他选项卡将立即收到“focus()”通知? 我以 Facebook Chat 为例。如果您收到新消息,所有选
现在我正在更改 onfocus(onclick 等) 事件的默认行为,如下所示: function my(e){ e.style.backgroundColor = "red";//her
一开始我有输入字段,它与 jquery 代码配合得很好,现在我将输入字段更改为 asp.net 文本框,因为我进行了扩展,因此它将数据插入数据库中。所以现在我需要弄清楚它如何与 asp:textbox
我在使 onFocus 和 onBlur 事件正常工作时遇到一些问题 这是我得到的 var var1 $("input").focus(function() { var1 = $(this).va
我有一个字段,我想在其中选择一个输入框来更改字段的背景颜色。我尝试通过一个简单的 onfocus 操作更改输入父级的 html 类,即字段,但我没有看到任何反应。 我有以下内容,并仔细检查了类名。 在
我有很多文本区域文件,我希望它们在聚焦时全部展开 这是我的代码演示:http://jsfiddle.net/PU73y/ 问题是当我点击它们时它们不会展开。这是为什么? 谢谢 this is test
我正在编写一个 JavaScript 聊天应用程序,但我遇到了一个小问题。 这是 HTML 结构: 当用户点击/聚焦聊天框时,我希望文本框自动聚焦。我在聊天框上有这个 onfo
我在谷歌上寻找一种方法来删除焦点文本,但无法弄清楚如果字段中没有输入任何内容,我们如何将其添加回去。 这就是我目前所拥有的... onfocus="if(this.value == 'Name*')
我使用 onfocus 事件处理程序来做几件事。它在初始页面加载后效果很好。但是,在我单击打开模式弹出窗口的链接后,onfocus 事件停止工作。焦点仍然可以正常工作...但是 onfocus 事件永
当我动态附加输入时,onfocus 函数不起作用。 我的代码 $i=1; )"> 我的功能是 function myFun(val){ alert(val); } 最佳答
在使用 Internet explorer 的页面上,我有一个下拉菜单,但在第一次加载页面时,因为它上面有一个 onFocus,所以需要双击才能打开显示菜单。如何避免双击。 onFocus 仍必须触发
我做了 float 文本输入,当用户专注于输入时,我的文本会 float ,但当用户点击我的输入时,我的输入中也需要一个“关闭 x”图标。 To include "x cloase" icon I w
知道我的代码有什么问题吗?我的 onFocus 事件在 div 上不起作用 class Hello extends React.Component { state = { openDrop
我希望按钮在通过 tab 键选择时具有发光效果。谁能帮我这个。代码片段将非常有帮助。 谢谢拉什米 最佳答案 如果您正在为现代浏览器开发,您可以使用 html5 框阴影和过渡: button{ bac
假设我有一个文本框的 onFocus 事件。正如预期的那样,当用户跳入该框时会触发该事件。但它似乎也像选择框时触发事件,然后通过切换选项卡,打开然后关闭另一个应用程序等覆盖然后打开窗口。有没有办法使事
与其他人一样,我们的网络应用程序中到处都有表单。 到目前为止,我们一直在大多数表单元素中使用以下(或一些变体): class="formThingy" onFocus="document.the
我想在我的注册表单上制作这种 Pinterest 效果 - 当用户关注输入文本字段或文本区域时,我希望该字段或区域周围有柔和的阴影,如下所示: 所以我尝试了以下 - 我写了一个 CSS 类 .inpu
Fiddle 所以我遇到了这个问题。 我有一个简单的表格: 还有这个脚本: function focus(element) { console.log('focused ' + el
我正在尝试在用户单击字段时向表单字段添加颜色边框,我擅长 html 和 javascript,还有一点 php,但我的 css 实际上很差。表单等的代码如下。如果有人可以指导或帮助我,我将不胜感激。代
我正在使用带有 LinearLayoutManager 的 RecyclerView 来填充对象的 ArrayList。我需要的是当我将焦点从一个项目切换到另一个项目时,如何实现 onFocus 事件
我是一名优秀的程序员,十分优秀!