GUI - JFrame:声明变量

时间:2014-01-27 21:11:08

标签: 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? 仅仅是为了创建它的大小和文本等吗?

3 个答案:

答案 0 :(得分:4)

你再次宣布。你用第二位代码初始化 - 差别很大。

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

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类型的变量,但是在创建它们时会自动填充默认值,这些默认值用于引用变量(除了诸如整数之类的基元之外的所有内容) ,双打,花车,......)是null。所以你有变量引用null或什么都没有,在使用之前你必须为它们分配一个有效的引用或对象,这就是你的第二个代码所做的事情(我的字符串中的语句(B))上面的例子)。

你会想要运行,而不是走到最近的Java教程或教科书的介绍,并阅读变量声明和初始化,因为你真的需要在尝试创建之前理解这个非常核心的基本概念Swing GUI,或任何Java程序。这很重要。

答案 1 :(得分:1)

声明和初始化是两回事。您可以像这样一次声明并初始化它们:

private JTextField item1 = new JTextField(10);
private JTextField item2 = new JTextField(10);
private JTextField item3 = new JTextField(10);
add(item1);
add(item2);
add(item3);

答案 2 :(得分:0)

在Java中,在编程方面非常肯定,有“引用”和对象。

创建对象时,通常会创建对象的引用。您可以稍后使用该引用访问该对象。

enter image description here

obj是对您创建的新对象的Object类型的引用。

你不能简单地写Object obj;,因为这只会声明一个引用。你必须将一个对象“附加”到该引用,而不是你可以使用它,因为它会在某个地方引导。

希望这有助于你