java - 自定义 JSpinner

标签 java swing jspinner

我创建了以下类,它扩展了 JSpinner 以迭代 dd/mm/yyy 值。


public class DateSpinner extends JSpinner{

    Calendar calendar = new GregorianCalendar();

    public DateSpinner(){
    super();

    calendar.add(Calendar.DAY_OF_YEAR, 1);
    Date now = calendar.getTime();

    calendar.add(Calendar.DAY_OF_YEAR, -2);
    Date startDate = calendar.getTime();

    calendar.add(Calendar.YEAR, 100);
    Date endDate = calendar.getTime();

    SpinnerDateModel dateModel = new SpinnerDateModel
        ( now , startDate , endDate , Calendar.DAY_OF_MONTH );

    setModel(dateModel);

    JFormattedTextField tf =
        ((JSpinner.DefaultEditor)getEditor()).getTextField();
    DefaultFormatterFactory factory =
        (DefaultFormatterFactory)tf.getFormatterFactory();
    DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter();

    // Change the date format to only show the hours
    formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy"));
    }




}

我的问题是当我使用

设置其值时
    Date today = new Date();
    spinner.setValue(today);

我得到的日期包括时间和星期几。如果我触摸微调器,它会根据我设置的格式对其进行格式化。我怎样才能最初获得我想要显示的格式?

最佳答案

使用内置编辑器,例如以下

spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy"));

关于java - 自定义 JSpinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/993092/

相关文章:

java - 如何在 JSpinner 中只允许正值?

java - 避免 JSpinner 取信

java 参数索引超出范围(1 > 参数数量,mysql 为 0 - 简单登录

java - 调用批处理文件Java程序

java - 为什么 Java 应用程序需要应用程序服务器,而 .Net 只是 IIS Web 服务器?

java - 如何让 JTextArea 完全填满 JPanel?

Java GUI 程序打开一个新的 JPanel,而不是替换当前面板

java - 在构建 Android 应用程序时没有通过签名保护特定 list 条目

java - 如何在JTable中使用glaledlist的UndoRedoSupport或undoSupport?

Java Swing JSpinner 与 NumberEditor 显示空白而不是零