자바 배열에대해 질문드립니다.
글쓴이: 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처럼 메모리로 접근하시지 말고, "객체"로 접근하시기 바랍니다.
댓글 달기