자바 배열에대해 질문드립니다.
글쓴이: bingsinson / 작성시간: 월, 2006/07/31 - 3:01오후
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Base extends Applet
{
Label display;
Button []button;
TextArea ta;
Panel p1;
public void init()
{
setLayout(new BorderLayout());
display = new Label("game");
display.setAlignment(Label.RIGHT);
add("North", display);
p1 = new Panel();
p1.setLayout(new GridLayout(4,3));
for(int i = 0; i<9; i++)
{
button[i] = new Button(String.valueOf(i+1));
p1.add(button[i]);
}
button[9] = new Button("<-");
p1.add(button[9]);
button[10] = new Button("다시입력");
p1.add(button[10]);
button[11] =new Button("입력완료");
p1.add(button[11]);
add("Center", p1);
ta = new TextArea(10, 20);
add("South", ta);
}
}이런식으로 한뒤 appletviewer로 확인해보면 위의 버튼 배열에서 에러가 나옵니다.
처음에 제가 썼던건
Button []button = new Button[12];
이렇게 한후 나중에 쓸때 new하지 않고 그냥 버튼문자열만 바꿔는식으로 했었는데
에러가 나서 이렇게 바꿨습니다.
왜 new를 두번이나 해야하는거죠??
Forums:


init()메소드가 불리기
init()메소드가 불리기 전에 button = new Button[12] 식으로 어레이를 초기화 해주는 부분이 있나요?
없다면 NullPointerException 이 날 듯 한데요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
다른 객체입니다
배열객체와 배열객체가 정보로 들고 있는 Button 객체는 서로 다른 객체입니다.
당연히 두가지 모두 생성을 해주어야 제대로 동작하겠죠.
C처럼 메모리로 접근하시지 말고, "객체"로 접근하시기 바랍니다.