1

我在初始化 JPanel 时遇到问题。这是我的代码:`

    JPanel    canvas = new JPanel();
    JPanel can = canvas;
    System.out.println("COMPONENTS 1 :" + canvas.getComponentCount());
    System.out.println("COMPONENTS 1 :" + can.getComponentCount());
    JTextField txt = new JTextField();
    txt.setBounds(100, 100, 200, 30);
    can.add(txt);
    System.out.println("COMPONENTS 2 :" + canvas.getComponentCount());
    System.out.println("COMPONENTS 2 :" + can.getComponentCount());

`

输出是:

COMPONENTS 1 :0
COMPONENTS 1 :0
COMPONENTS 2 :1
COMPONENTS 2 :1

我想要的是 :

COMPONENTS 1 :0
COMPONENTS 1 :0
COMPONENTS 2 :0
COMPONENTS 2 :1
4

1 回答 1

2

使用
JPanel 行可以 = canvas;

您没有创建新的 JPanel 对象。您正在制作罐头,指向画布也指向的同一个 JPanel 对象。Canvas 只是一个指向 JPanel 内存地址的指针。实际上,can 和 canvas 是完全相同的 JPanel。如果您希望能够独立修改它们,您想创建一个新的 JPanel 实例。

于 2013-02-25T08:16:42.350 回答