찬이욥
212
2020-06-10 17:43:49 작성 2020-06-11 09:56:39 수정됨
1
260

자바 스윙 컴포넌트 파트 공부중에 질문이 있습니다.


기본서로 공부 중에 실전문제를 푸는중에 이해가 안되는 부분이 있어서 질문드립니다.

사진을 첨부할수가 없어서 문제를 간단히 설명드리면 

프레임내에  1~10까지의 숫자가 적힌 레이블을 생성하는것인데 프레임 범위 내에 위치는 랜덤으로 지정됩니다.

========================================================================


package ch8_exercise;


import java.awt.*;

import javax.swing.*;


public class Ex8_6 extends JFrame

{

public Ex8_6()

{

setTitle("Random Labels");

Container con = getContentPane();

JLabel label [] = new JLabel [20];

for(int i=0; i<label.length; i++)

{

int randX = (int)(Math.random()*399);

// label의 평면좌표 값중 x값을 랜덤으로 90~310사이로 지정

int randY = (int)(Math.random()*399);

// label의 평면좌표 값중 y값을 랜덤으로 90~310사이로 지정

label[i] = new JLabel(Integer.toString(i));

label[i].setBounds(randX, randY, 20, 20);

// 임의의 평면좌표 x,y값을 대입하여 각 라벨의 위치를 지정


label[i].setForeground(Color.CYAN);

con.add(label[i]);

}

setSize(400,400);

setVisible(true);

}

public static void main(String[] args) 

{

  new Ex8_6();

}

}

========================================================================

본 코드 작성시에 프레임 영역 바깥쪽으로 레이블이 위치 할때가 있는데 왜그러는 건가요???

0
  • 답변 1

  • HJOW
    6k
    2020-06-10 17:50:56

    추가 정보가 필요합니다.

    1. 레이블의 길이는 얼마나 되나요?

        (setLocation 으로 좌표 지정하면 해당 컴포넌트의 맨 왼쪽 위 지점의 위치를 지정하는 겁니다.)

    2. 프레임의 제목표시줄 높이는요?

    3. 혹시 저 레이블(라벨)들을 프레임이 붙이지 않고 그 안에 패널을 만들어 붙이지는 않으셨는지?

  • 로그인을 하시면 답변을 등록할 수 있습니다.