多次使用Box变量

时间:2012-08-13 20:31:26

标签: java swing

我正在进行一项任务,我必须创建三行三个盒子,每个盒子里面都有一个1-9的数字。出于某种原因,此代码无法正常工作,它只打印一行,中间位置为1:

import javax.swing.*;
import java.awt.*;

public class PracticeTwo extends JPanel {

  private JFrame mainFrame = new JFrame("");
  private Box bigBox = Box.createVerticalBox();
  private Box smallBox = Box.createHorizontalBox();
  private Box numBox = Box.createVerticalBox();

  public void makeGui () {

    mainFrame.add(bigBox);
    bigBox.setAlignmentX(Component.LEFT_ALIGNMENT);

    while (num < 10) {

    bigBox.add(smallBox);
    smallBox.add(numBox);
    numBox.add(numIncrement);
    smallBox.add(numBox);
    numBox.add(numIncrement);
    smallBox.add(numBox);
    numBox.add(numIncrement);
    num++;
    }

    mainFrame.setVisible(true);
    mainFrame.pack();
  }
}

我想我的问题是:我可以多次使用相同的Box变量来更轻松地创建这个GUI,或者每次制作相同类型的盒子时是否必须创建不同的变量?

2 个答案:

答案 0 :(得分:2)

由于Box只是另一个JComponent,因此必须为组件层次结构中的每个位置创建一个单独的Box。换句话说,您无法重复使用JTextField,就像您无法重复使用{{1}}一样。

答案 1 :(得分:2)

变量用于保存对对象实例的引用,以便您可以在以后需要时访问这些实例。使用变量并不是保持这些引用的唯一方法。另一种方式是通过数据结构。数据结构的一些例子是:数组,树,列表,表等。我想在你的课程中你可能还没有学过如何使用数据结构,所以现在必须定义多个变量。在实际代码中,你不会这样做。