절대 레이아웃이있는 패널을 사용하고 있습니다. 이유를 묻지 마십시오. 프로그래밍 방식으로 요소를 추가해야합니다. 나는 그 부분을했지만 지금은 JScrollPane
으로 패널을 둘러 쌈으로써 사용자가 더 많은 항목을 추가 할 때 스크롤 막대가 해당 작업을 수행하도록합니다. 스크롤바가있는 주변 패널은 작동하지 않습니다. 나는 여기서 무엇을 할 수 있는가.JScrollPane 내의 절대 레이아웃 패널
JFrame frame = new JFrame();
frame.setSize(582, 451);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 11, 546, 391);
frame.getContentPane().add(scrollPane);
JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);
for(int i=0;i<labelList.size();i++){
if(a==4){
a=0;
b++;
}
labelList.get(i).setBounds(10+120*a+10*a, 10+130*b+10*b, 120, 130);
labelList.get(i).setOpaque(true);
labelList.get(i).setBackground(Color.WHITE);
labelList.get(i).setText(Integer.toString(i));
panel.add(labelList.get(i));
a++;
}
'절대 레이아웃이있는 패널을 사용하고 있습니다. (왜 묻지 마십시오.)'- ** 자원 봉사자에게 ** 도움을 요청하고 있으므로 도움을주기 위해선 안됩니다 . 스윙 경험이있는 대부분의 사람들에게 분명한 질문은 절대 레이아웃을 사용하려는 이유입니다. 당신의 질문은 우리가 이것을 묻지 못한다고 규정했기 때문에 나는 절을 할 것입니다. 도움이 될만한 사람이 있으면 도움을 얻을 수 있지만 도움이 될 확률을 높이려면 문제와 밀접한 관련이 있으므로 요구 사항에 대해 조금만 설명하면 도움이됩니다. –
JPanel에서 유효한 레이아웃 관리자를 사용하면 더 많은 구성 요소가 추가 될 때 ** preferredSize **가 자동으로 증가하고 유효성이 다시 확인됩니다 (레이아웃에 구성 요소를 다시 레이아웃하라는 메시지가 표시됨). null JPanel은 이것을하지 않으므로 JScrollPane은 작동하지 않습니다. –
@Hover 나는 아무도 나를 도우려고하지 않습니다. 나는 누군가가 내가 좋아하는 방식으로 해결하려고 노력하는 문제의 해결책을 가지고 있는지 묻는다. "이유를 묻지 말라"는 비우호적이라고 언급되지 않은 것은 모든 사람이 "절대적인 레이아웃을 사용하지 마십시오"와 같이 대답 할 것이기 때문입니다. 그것은 2 미터 거리에서 누군가 TV를 시청하고 누군가가 걷지 않고 프로그램을 전환하는 것을 도울 수 있는지 묻습니다. 누군가는 "왜 당신이 일어나서 프로그램을 수동으로 바꾸지 않겠습니까?"라고 말합니다. 이를 방지하기 위해 사람 A는 "프로그램을 시작할 수있게 전환 할 수 있음을 알려주지 않습니다. 이미 알고 있습니다."라고 덧붙입니다. 재생 해줘서 고마워. –