- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们有一个带有 SpinnerDateModel
和 DateEditor
的 JSpinner
JSpinner spinner = new JSpinner(new SpinnerDateModel());
spinner.setEditor(new JSpinner.DateEditor(spinner, "H.mm"));
如果您单击小时并单击箭头,它会更改小时,这是预期的。
但是,如果您在所有数字之后的分钟区域中单击,在本例中,是在“5”之后 然后单击箭头,它将更改小时而不是分钟。
步骤:
在“4”之前单击并单击箭头。营业时间将更改
在所有数字(“5”之后)之后的分钟区域中点击之后 - 小时数仍然发生变化。但是应该更改分钟,而不是小时
点击分钟区所有数字后,如何让分钟发生变化?
这里是完整的来源:
public class BoxFrame extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BoxFrame frame = new BoxFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public BoxFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JSpinner spinner = new JSpinner(new SpinnerDateModel());
spinner.setEditor(new JSpinner.DateEditor(spinner, "H.mm"));
contentPane.add(spinner);
}
}
最佳答案
当微调器询问底层 JFormattedTextField
当光标在右端时选择了什么,返回的日历字段索引是 -1
,所以微调器得到下一个值基于 Calendar
的最后一个选定字段,在您的情况下,它是 Calendar.HOUR
或 Calendar.MINUTE
。单击其中一个箭头时,将在 SpinnerDateModel
上设置该值。
因此,为了获得您想要的结果,您需要检查 JFormattedTextField
中的索引是否是最右边的索引并更改它以使其在 Calendar.MINUTE
内 field 。不漂亮,但很管用。
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "H.mm") {
@Override
public JFormattedTextField getTextField() {
JFormattedTextField txt = super.getTextField();
int start = txt.getSelectionStart();
int length = txt.getText().length();
if (start == length) {
txt.setSelectionStart(length - 1);
}
return txt;
}
};
关于java - 当光标位于分钟区域时,具有 dateModel "H:mm"的 JSpinner 更新小时而不是分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285686/
我正在尝试让 JSpinner(包含分/秒计时器)为一群按自己的方式工作的人工作,他们不关心鼠标,但希望每次击键都能准确地完成他们的任务习惯了。它几乎按照我想要的方式工作,但最后一英里是最难的。 这在
我正在 netbeans 中构建一个小型应用程序,我使用 JSpinner 组件来设置产品的数量。如何将微调器设置为仅取正值?在 Netbeans 中是否有可以设置的选项或方法JSpinner ? 额
我正在使用 JAVA 开发 i18n 应用程序。 我正在使用 JSpinner与 String[]作为模型以允许用户选择某些选项。 我的问题是 JSpinner 中的文本正在因语言而变化。 所以我不想
Quick picture to show what is happening JSpinner 出现了两次,如上图所示。第一次出现在不应该出现的点 (0,0) 处的情况下,如果没有微调按钮,则无法选
我的问题是 JSpinner(在代码中名为 spinnerCantidadPuntas)有时根本不显示,或者只是有错误。当我运行项目(F6)时,它几乎肯定无法正确显示,当我调试它(CTRL+F5)
我可以使用 getValue() 获取当前值,但是是否可以获取 JSpinner 的最大和最小允许值?从文档中找不到 JSpinner 的 getMax() 或 getMin() 等方法。 http:
这个问题已经有答案了: How to set JSpinner as non editable? (3 个回答) 已关闭 9 年前。 如何制作一个不允许手动输入的 JSpinner。我希望我的微调器只
过去一个月我一直在开发 GUI,我发现 JSpinner 无法正确显示。只出现边框,没有数字,没有箭头,看图: 我可以判断某个组件何时启用或未启用,但这不是问题所在。 入门类,其中 MAIN 方法是:
我创建了以下类,它扩展了 JSpinner 以迭代 dd/mm/yyy 值。 public class DateSpinner extends JSpinner{ Calendar calen
当我的 JSpinner 为空时,我想采用 null 值。但当我调用 getValue() 函数时,它返回 0.0 。 public JFormattedTextField getTextFiel
我试图实现以下目标。 我想使用一个使用数字作为数据的 JSpinner,但我想让它像这样渲染:“6/10”,即“值/最大值”,其中默认的 JSpinner 只显示“值” 。当然,我使用 Spinner
我有一个带有 ChangeListener 定向的 JSpinner 。但只有当我按 Enter 或单击其中一个 JSpinner 按钮时,才会激活 ChangeListener 。我想知道如何在值更
我得到了步长为 0.01 的 JSpinner,但 getValue() 似乎返回奇数值。 举个例子:它是 0.06,如果我增加它,它有时会显示 0.069999999999999999 而不是 0.
我有一个 JSpinner,我创建它并将其添加到屏幕上,然后使用 setValue 更新它的值。如果我随后调用 getValue,则会返回正确的更新值。但它没有显示在 UI 上,当我单击按钮递增时,它
我有一个 JSpinner,其中所有整数都作为 model。我希望它的值随着向下箭头而增加,并且随着向上箭头而减少,这与默认用法完全相反。 我已经使用具有先前值的变量完成了此操作,并添加了一个 Cha
所以我的问题是,我之前在 Jspinners 上也遇到过这个问题。是我用标题边框包围我的 jspinner 吗?然而,在 GUI 中,它会剪切标题文本,因为 js 较小。那么,我如何强制 gui 根据
我有一个类,其中有两个 JSpinner 对象,x 和 y。我有一个更改监听器,它已添加到两者中。有人可以告诉我如何实现我的更改监听器,以便监听器可以区分两个对象之间的区别。例如伪代码: if(sou
我想同时允许“逗号”和“点”作为 double 分隔符。 我可以在字符串中使用 replace 方法来只获取一个分隔符,但问题是 double 值是 JSpinner 的值,我无法找到任何允许两个分隔
我有数组 JSpinners,但我无法监听。 这个不起作用,因为 Java 需要最终变量。当我将 spin4[j] 更改为 spin4[0] <- 它正在工作。但我需要带有 JSpinners 的数组
下面这段代码实际上做了什么, //Make the year be formatted without a thousands separator. spinner.setEdito
我是一名优秀的程序员,十分优秀!