【问题标题】:Auto filling a JTextField in GUI [duplicate]在 GUI 中自动填充 JTextField [重复]
【发布时间】:2018-11-19 02:02:03
【问题描述】:

我目前正在使用 Java 中的 Netbeans 创建 GUI。当我使用来自另一个框架的JButton 加载包含该文本字段的JFrame 时,如何使JTextField 自动填充以包含当前系统日期?

【问题讨论】:

标签: java swing jbutton jtextfield


【解决方案1】:
  1. 假设按下按钮时可以构造(实例化)JTextField,在构造时用当前日期/时间填充它。
  2. 查看更适合显示(并允许用户选择)日期的任意数量的组件。例如。 new JSpinner(new SpinnerDateModel()); - 顺便new SpinnerDateModel()默认为当前日期!

这里是使用微调器/微调器日期模型的示例。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class DateSpinner {

    private JComponent ui = null;

    DateSpinner() {
        initUI();
    }

    public void initUI() {
        if (ui!=null) return;

        ui = new JPanel(new BorderLayout(4,4));
        ui.setBorder(new EmptyBorder(100,100,100,100));

        JButton dateSelector = new JButton("Select a date (after now)");
        ActionListener dateSelectorListener = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                SpinnerDateModel spinnerDateModel = new SpinnerDateModel();
                JSpinner spinner = new JSpinner(spinnerDateModel);
                JOptionPane.showMessageDialog(
                        ui, spinner, "Choose Date", JOptionPane.QUESTION_MESSAGE);
                System.out.println("Date Chosen: " + spinnerDateModel.getDate());
            }
        };
        dateSelector.addActionListener(dateSelectorListener);
        ui.add(dateSelector);
    }

    public JComponent getUI() {
        return ui;
    }

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (Exception useDefault) {
                }
                DateSpinner o = new DateSpinner();

                JFrame f = new JFrame(o.getClass().getSimpleName());
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                f.setLocationByPlatform(true);

                f.setContentPane(o.getUI());
                f.pack();
                f.setMinimumSize(f.getSize());

                f.setVisible(true);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

【讨论】:

  • 感谢@Andrew 我想通了
  • 如果它有助于解决问题,请accept the answer
猜你喜欢
  • 1970-01-01
  • 2011-05-06
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多