[질문]콤보박스를 이용한 간단한 문제인데요.. 찾을수가...
SweetChoco
맨날 글만 읽기만하고 질문만 올려서 지송요... 아는것이 없으니깐 쓸수가 없어요...제가 지금 간단한 거 만들려고 하는데요
소스가 있기는 하는데 그냥 설명이 더 좋을 것 같아서요,..
일단 제가 하고 싶은 것은 swing으로 프레임을 하나만들고
콤보박스를 하나 추가합니다. 그리고 콤보박스에는 1부터 10까지가 있어서
선택이 가능하고요
선택을 할때 콤보박스 숫자에 맞게 스크롤을 가지고 있는 패널 안에 label과 TextArea가 갯수에 맞게 출력하려고하는겁니다.
---------|
Combo | ----요기를 클릭하면 1부터 10까지중 골라서 선택합니다.
---------|선택을 하면 아래쪽으로 콤보박스의 개수에 맞게 나옵니다.
예를 들어 3을 선택을 했을때..
Label 1 TextArea.......................
Label 2 TextArea.......................
Label 3 TextArea.......................
그리고 다른숫자를 선택하면 위의 레이블과 텍스트에어리어는 지워지고 다시 숫자만큼 출력을 합니다.
위의 레이블과 TextArea들은 패넬에 포함되며 그 패널을 스크롤 패널에 포함된것입니다.
소스는 올리겠지만 -.-;;;제것은 제가 가끔씩 헛갈려서......
중간에 올리는 거라서 완성은 되지 않았어요
아~~~~ 맞다~~~
제가 정말 알고 싶은 것은 출력은 되는데요...
저런 식으로 정렬을 시키고 싶어였습니다.
FlowLayout으로 하면 한줄로 나와 버리고
BorderLayout... 등등으로 해도 갈수록 정렬이 안되요....
저번에도 그랬는데 Layout설정해서 위치 잡아주는거 정말 힘들어요
다른 작업다하고 이런 위치 잡고 Layout작업땜시 더많은 시간을 잡아먹을때 마다
비베란 것이 하고 잡아져요.... ㅠ.ㅠ
더추가해야할 항목이있으면 바로 수정하겠습니다. 많은 관심을....
아래는 소스입니다. 참고 바랍니다. 제가 초보만 벗어나면 답글이란것을 남길수 있겠죠??
그날이 빨리 오기를 바랄 뿐입니다. --------------------------------- Source ----------------------------------------
콤보박스는 이렇게...
// ##### addItem
for(int i=1;i=10;i++){
cmb_choiceContext_count.addItem( + i);
}
콤보박스에 이번트를 주어서 클릭을 할시 choiceCount를 출력하게 했습니다.
/************************************************
* clsaa AddAction implements ActionListener
************************************************/
class AddAction implements ActionListener{
public void actionPerformed(ActionEvent e){
choiceCount();
}
}
/***************************
* void choiceCount()
***************************/
void choiceCount(){
//여기서콤보박스에서 선택한 것을 가져오게 했습니다.
int count = cmb_choiceContext_count.getSelectedIndex() + 1;
여기서 레이아웃을 설정해야하는데요
p_questionChoice.setLayout(new 요기레이아웃);
p_questionChoice.removeAll(); //이벤트가 일어날때마다 모든 것을 지우고 다시 생성시킨다
for(int i=0;icount;i++){
// 여기의 count의 개수에 맞게 출력을 해줘야하는데요 -.-;;
p_questionChoice.add(new AddPanel(count).getPanel());
}
}
여기 클래스는 하도 안되어서 누군가에게 잠쉬 듣고 함 해봤는데 안되더라고요
이 클래스는 패널을 만들고 거기에 레이블과 택스트에어리어를 추가하고
그 추가된 패널을 넘겨주는 것인데요.. -.-;;;; 이건 제가 해놓고도 좀 그래서
너무 답답하니깐 이것 저것 이상한거 다 해보고 있습니다.
class AddPanel{
private JPanel panel = new JPanel();
private JLabel label;
private JTextArea ta;
AddPanel(number){
panel.setLayout(new FlowLayout());
label = new JLabel(number);
ta = new JTextArea(4,30);
panel.add(label);
panel.add(ta);
}
Component getPanel(){
return panel;
}
}
-
블레이
글을 다시 수정 했습니다. 다 지우고 중요한 것만요..
-
두루
그리드레이아웃은 크기를 제가 정한것으로안되고 자동으로 페널에 맞게 커져버려서요...
-
다힘
이렇게 긴 소스 올리면.. 보기 힘듭니다.. 대부분 직장이나 학교에서 짬짬히 하시는 분들이기때문이지요..
콤보박스가 선택되면 그 숫자를 얻어오고.. 얻어온 숫자만큼의 텍스트필드를 생성하고 싶으신건가요?
얻어온 숫자를 가지고 판넬에 그리드레이아웃을 설정하시고 그만큼 텍스트필드나라벨을 만드시면 될거같습니다..