2

私は、それぞれに 1 ~ 9 の数字が入った 3 つのボックスの 3 つの行を作成する必要がある課題に取り組んでいます。何らかの理由で、このコードは機能しません。中央に 1 がある 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();
  }
}

私の質問は、この GUI を簡単に作成するために同じ Box 変数を複数回使用できますか、それとも、同じ種類のボックスを作成するたびに異なる変数を作成する必要があるのでしょうか?

4

2 に答える 2

2

aBoxは単なる別のJComponentであるため、コンポーネント階層内の場所ごとに個別のものを作成する必要があります。つまり、1 つを再利用Boxできないのと同じように、 1 つを再利用することはできませんJTextField

于 2012-08-13T20:33:29.110 に答える
2

変数は、後で必要なときにこれらのインスタンスにアクセスできるように、オブジェクト インスタンスへの参照を保持するために使用されます。これらの参照を手元に置いておく方法は、変数を使用することだけではありません。もう 1 つの方法は、データ構造を使用することです。データ構造の例としては、配列、ツリー、リスト、テーブルなどがあります。コースのこの時点では、データ構造の使用方法についてまだ学んでいない可能性があるため、複数の変数を定義する必要があることは今のところ問題ありません。実際のコードでは、これを行うことはありません。

于 2012-08-13T20:38:16.737 に答える