Java JTextField没有大小?

Java JTextField没有大小?,java,swing,Java,Swing,当前我的JTextField组件的大小调整为0。我已尝试setPreferredSize,setSize(新维度),添加了列并删除了带有GridBagConstraints的锚点。到目前为止,一切都不起作用。这是我的密码: private void createPayFrame() { JFrame payFrame = new JFrame(); payFrame.setSize(new Dimension(450, 300)); payFrame.setLocati

当前我的
JTextField
组件的大小调整为0。我已尝试
setPreferredSize
setSize(新维度)
,添加了列并删除了带有
GridBagConstraints
的锚点。到目前为止,一切都不起作用。这是我的密码:

private void createPayFrame() {

    JFrame payFrame = new JFrame();
    payFrame.setSize(new Dimension(450, 300));
    payFrame.setLocationRelativeTo(null);
    payFrame.setLayout(new GridBagLayout());

    JLabel payment = new JLabel("<html>Your bill has been generated. It is located in your "
            + System.getProperty("user.home") + "\\eclipse-workspace\\Turbo Team directory</html>");
    GridBagConstraints gbc = new GridBagConstraints();

    JTextField payField = new JTextField(10);
    payField.setToolTipText("Enter in the amount due here");

    gbc.anchor = GridBagConstraints.ABOVE_BASELINE;
    gbc.insets = new Insets(0,0,20,0);
    payFrame.add(payment, gbc);

    gbc.gridy = 1;
    gbc.insets = new Insets(10,0,0,0);
    payFrame.add(payField, gbc);

    payFrame.setVisible(true);
}
private void createPayFrame(){
JFrame payFrame=新JFrame();
支付框架设置大小(新维度(450300));
payFrame.setLocationRelativeTo(空);
setLayout(新的GridBagLayout());
JLabel payment=new JLabel(“您的账单已生成。它位于您的”
+System.getProperty(“user.home”)+“\\eclipse workspace\\Turbo Team directory”);
GridBagConstraints gbc=新的GridBagConstraints();
JTextField payField=新的JTextField(10);
payField.setToolTipText(“在此输入到期金额”);
gbc.anchor=GridBagConstraints.over_基线;
gbc.插图=新插图(0,0,20,0);
支付框架。添加(支付,gbc);
gbc.gridy=1;
gbc.插图=新插图(10,0,0,0);
payFrame.add(付费域,gbc);
payFrame.setVisible(真);
}
这是我运行代码时的样子:


知道这里发生了什么吗?

设置文本字段的填充

gbc.fill = GridBagConstraints.HORIZONTAL;

设置文本字段的填充

gbc.fill = GridBagConstraints.HORIZONTAL;

当JTextField太大而无法显示时,GridBagLayout出现了这个问题。你试过用较少的列吗?也许试着从新的JTextField(1)开始,然后逐步查看它是否能以较小的长度工作。

当JTextField太大而无法显示时,GridBagLayout就出现了这个问题。你试过用较少的列吗?也许可以尝试从新的JTextField(1)开始,然后逐步升级,看看它是否能以较小的长度工作。

谢谢您的帮助。为什么它没有自动执行此操作?因为没有任何填充是使组件保持其初始大小的默认填充。您也可以打包框架,以允许组件采用其首选尺寸。谢谢您的帮助。为什么它没有自动执行此操作?因为没有任何填充是使组件保持其初始大小的默认填充。您还可以打包框架,以允许组件采用其首选尺寸。