我正在使用 JTable。在那里我有一个日期列,当我单击一个单元格时,我需要在其中显示一个 JXDatePicker,以便我可以从中选择一个日期。

有人可以告诉我如何做到这一点吗?

谢谢!等待一个答案..

最佳答案

您可能应该使用 DatePickerCellEditor ,这是一个使用 CellEditor 作为编辑器组件的 JXDatePicker 。例如:

TableColumn dateColumn = table.getColumnModel().getColumn(columnIndex);
dateColumn.setCellEditor(new DatePickerCellEditor());

这是一个演示表:
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.TableColumn;

import org.jdesktop.swingx.table.DatePickerCellEditor;

public class DateColumnDemo {

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("DateColumnDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JTable table = new JTable(new Object[][] { { "1", new Date() } },
                new Object[] { "Id", "Time" });

        TableColumn dateColumn = table.getColumnModel().getColumn(1);
        dateColumn.setCellEditor(new DatePickerCellEditor());

        JScrollPane scrollPane = new JScrollPane(table);

        frame.add(scrollPane);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

10-06 01:24