- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对标准 JSpinner.DateEditor 有疑问(其他人可能也是如此)。当它与 Java.util.Date 类一起使用时,它只会从微调器上设置的区域设置中获取默认格式。它似乎是 TimeZone 无知。
当我们的日期是三月时钟更改日,在英国没有 2 点钟 - 时间从 01:59:59.999 AM 跳到 03:00 AM,并应用夏令时。
因此在 JSpinner.DateEditor 中,我不希望用户看到 02:00 到 02:59:59.999 之间的任何内容。当时间为 1 并且他们点击向上时,我想跳到 3,反之亦然。
是否可以实现任何类型的解决方法来做到这一点?
非常感谢
安德斯
最佳答案
您能否编辑您的问题并使用此 SSCCE证明您关于 DTS 的问题
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
public class TimeZoneSpinners {
private final String[] zones = {"Asia/Tokyo", "Asia/Hong_Kong",
"Asia/Calcutta", "Europe/Paris", "Europe/London",
"America/New_York", "America/Los_Angeles"
};
private final JLabel[] labels = new JLabel[zones.length];
private final SimpleDateFormat[] formats = new SimpleDateFormat[zones.length];
private JSpinner spinner;
private SpinnerDateModel model;
private SimpleDateFormat format;
private JPanel panel;
private JFrame frame = new JFrame();
public void makeUI() {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
model = new SpinnerDateModel();
model.setValue(date);
spinner = new JSpinner(model);
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
Date date = (Date) ((JSpinner) e.getSource()).getValue();
for (int i = 0; i < labels.length; i++) {
labels[i].setText(formats[i].format(date));
}
}
});
format = ((JSpinner.DateEditor) spinner.getEditor()).getFormat();
format.setTimeZone(TimeZone.getTimeZone(zones[0]));
format.applyPattern("yyyy-MM-dd HH:mm:ss");
panel = new JPanel(new GridLayout(zones.length, 2, 10, 10));
for (int i = 0; i < zones.length; i++) {
formats[i] = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
formats[i].setTimeZone(TimeZone.getTimeZone(zones[i]));
JLabel label = new JLabel(zones[i]);
labels[i] = new JLabel(formats[i].format(date));
panel.add(label);
panel.add(labels[i]);
}
frame.setLayout(new BorderLayout(10, 10));
frame.add(spinner, BorderLayout.NORTH);
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TimeZoneSpinners().makeUI();
}
});
}
}
关于Java JSpinner.DateEditor 使用 TimeZone March 时钟更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532662/
我正在尝试让 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
我是一名优秀的程序员,十分优秀!