【问题标题】:Java - array of text fields not displayingJava - 未显示的文本字段数组
【发布时间】:2014-03-23 18:50:20
【问题描述】:

在我的 GUI 类中,我有一个文本字段数组,我在此类构造函数中对其进行了初始化。代码如下

JTextField[] arrayOne= new JTextField [10];
        for(int a = 0;a < 10;a++)
        {
            arrayOne[a] = new JTextField(String.valueOf(0));
            arrayOne[a].setBounds(189 + a * 50, 156, 39, 23);
            arrayOne[a].setVisible(true);

        }

问题是,当我运行我的 GUI 时,它没有显示这些文本字段。为什么不呢?

【问题讨论】:

  • 您是否将它们添加到容器中?

标签: java arrays user-interface textfield


【解决方案1】:

您应该在布局中添加JTextField

如果您在for 内扩展JFrame,则应使用容器/或类的add 方法。

阅读this

向容器中添加组件

当您将组件添加到面板或内容窗格时,您的参数 指定 add 方法取决于面板的布局管理器 或内容窗格正在使用。事实上,一些布局管理器甚至不 要求您显式添加组件;例如,组布局。 例如,BorderLayout 要求您指定要 应该添加组件(使用定义的常量之一 BorderLayout) 使用这样的代码:

pane.add(aComponent, BorderLayout.PAGE_START);操作方法部分 每个布局管理器都有关于你需要什么参数的详细信息(如果有的话) 指定添加方法。一些布局管理器,例如 GridBagLayout 和 SpringLayout,需要详细的设置程序。多布局 然而,管理人员只是根据他们的顺序放置组件 被添加到他们的容器中。

JPanel 和内容窗格以外的 Swing 容器通常提供 您应该使用的 API,而不是 add 方法。例如, 而不是直接将组件添加到滚动窗格(或者,实际上, 到它的视口),您可以在 JScrollPane 中指定组件 构造函数或使用 setViewportView。因为像专门的 API 这个,你不需要知道哪个布局管理器(如果有的话)很多 Swing 容器使用。 (对于好奇:滚动窗格碰巧使用布局 名为 ScrollPaneLayout 的管理器。)

有关如何将组件添加到特定容器的信息, 请参阅容器的操作指南页面。你可以找到组件 使用如何使用各种组件的操作指南页面。

【讨论】:

  • 先生,您拯救了我的一天。非常感谢!
【解决方案2】:

还有一种不可见的情况。

    f.setVisible(true);
    f.setSize(1000,1000);//Where f is the JFrame reference

JTextFields添加到所需的Frame后添加上述语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2014-04-08
    • 2019-08-24
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多