java - 图形用户界面-JFrame : declaring variables

标签 java swing jframe variable-declaration variable-initialization

在下面的代码中我创建了 3 个变量:

public class tuna extends JFrame {

    //Creating 3 text fields
    private JTextField item1;
    private JTextField item2;
    private JTextField item3;

我不明白的是为什么我需要执行以下操作:

item1=new JTextField(10);
        add(item1);

为什么需要再次将item1声明为jtextfield? 仅仅是为了创建它的大小和文本等吗?

最佳答案

您不会再次声明它。您使用第二段代码初始化它——差别很大。

这与任何其他引用变量没有什么不同。即,

public class MyFoo {
    private String fooString;  // (A)

    public MyFoo() {
      fooString = "hello world";  // (B)
    }

您还可以在同一行声明它并初始化它。

public class MyFoo {
    private String fooString = "hello world";
    private JTextField textField = new JTextField(10);

    public MyFoo() {
      // now can use both variables
    }

因此,代码中的第一条语句(上面的 String 示例中的语句 (A))创建了 JTextField 类型的变量,但是在创建时,它们会自动填充默认值,对于引用变量(除整数等基元之外的所有变量) 、 double 、 float ……)为 null。因此,您有引用 null 或无任何内容的变量,在使用它们之前,您必须为它们分配一个有效的引用或对象,这就是您的第二段代码的作用(我的 String 中的语句 (B))上面的例子)。

您将想要运行,而不是走到最近的 Java 教程或教科书简介并阅读变量声明和初始化,因为在尝试创建之前您确实需要了解这个非常核心的基本概念Swing GUI 或任何与此相关的 Java 程序。就是这么重要。

关于java - 图形用户界面-JFrame : declaring variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391750/

相关文章:

java - 调整 JFrame 大小会增加大量内存

Java 进程使用的内存比 VisualVM 显示的多

java - 使用 JUnit 5 的 Assert 类的编译错误

java - “SwingUtilities.updateComponentTreeUI(this)”从 JComboBox 中删除自定义文档

java - 使用工作线程时返回语句

java - SwingUtilities.windowForComponent(JFrame) 返回 null

java - 使用接口(interface)实现时为 "Inconvertible types"

java - 在 RXJava android 中为线程设置名称

java - Jframe 打开时崩溃

java - 更改 NetBeans 默认 JFrame 主函数有什么区别吗?