调整JDatePicker Java Swing的大小

调整JDatePicker Java Swing的大小,java,swing,Java,Swing,我正在使用来自的JDatePicker。这很酷,但我找不到任何方法来更改文本框和按钮的大小。setSize()仅更改容器的大小,如下图所示。有什么建议吗 更新:我找到了一种方法,使用JFormattedTextField指向datepicker的textfield实例并调整其大小。代码如下: UtilDateModel model = new UtilDateModel(); Properties p = new Properties(); p.put("text.today"

我正在使用来自的
JDatePicker
。这很酷,但我找不到任何方法来更改文本框和按钮的大小。
setSize()
仅更改容器的大小,如下图所示。有什么建议吗

更新:我找到了一种方法,使用JFormattedTextField指向datepicker的textfield实例并调整其大小。代码如下:

UtilDateModel model = new UtilDateModel();
    Properties p = new Properties();
    p.put("text.today", "Today");
    p.put("text.month", "Month");
    p.put("text.year", "Year");
    JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
    JDatePickerImpl dpDoB = new JDatePickerImpl(datePanel, af);
    dpDoB.setPreferredSize(new Dimension(195, 45));
    JFormattedTextField tf = dpDoB.getJFormattedTextField();
    tf.setPreferredSize(new Dimension(195, 35));
    Font font = new Font("Tahoma", 0, 16);
    tf.setFont(font);
    dpDoB.setShowYearButtons(false);
    dpDoB.setTextEditable(true);
    panelDoB.add(dpDoB);

仍然存在无法调整大小的按钮。因此,我不确定是否有其他方法可以解决这个问题,您可以查找JDatePickerImpl的componet(这个类只有两个)尝试以下方法:

UtilDateModel model = new UtilDateModel();
    Properties p = new Properties();
    p.put("text.today", "Today");
    p.put("text.month", "Month");
    p.put("text.year", "Year");
    JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
    datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter());
    datePicker.setPreferredSize(new Dimension(120,20));
    datePicker.getComponent(0).setPreferredSize(new Dimension(100,20)); //JFormattedTextField
    datePicker.getComponent(1).setPreferredSize(new Dimension(20,20));//JButton
    add(datePicker);

它附带源代码,因此您可以看到它是如何构造的。但更重要的是,你没有展示你自己的代码,你如何使用它,最重要的是,你正在使用什么布局管理器。如果只是使用FlowLayout,则不会调整大小。您尝试过BoxLayout或其他经理吗?谢谢您的评论。我找到了一种方法,使用JFormattedTextField指向文本框的实例,然后调整其大小。尽管仍有一个按钮无法访问。您好,感谢您的贡献。我设法解决了这个案子。