JPanel
카드를 기본 패널에 여러 개 놓으려고합니다. 새 카드 패널이 맞지 않으면 다음 줄에 넣기를 원합니다. 아래 이미지에서 모든 카드 패널이 오른쪽으로 가고, HORIZONTAL_SCROLLBAR_ALWAYS
가로 스크롤이 설정되어있는 것을 볼 수 있습니다. 그래서 여기에 내 메인 패널의 각 라인에 4 개의 카드 패널이 있어야 세로 스크롤이 작동합니다. 아래 응답에 따른 스 네일 흐름 레이아웃 요소에서 스크롤 가능 JPanel
public class PanelTraining extends JPanel{
private static final long serialVersionUID = 1L;
public PanelTraining(List<FccMeta> ffcms) {
super(new BorderLayout()); // set layout to absolute
setPreferredSize(new Dimension(880, 580));
setBorder(new LineBorder(Color.decode("#A11E1E"),1, true));
JPanel pnlChart = new JPanel();
pnlChart.setPreferredSize(new Dimension(860, 180));
pnlChart.setBackground(Color.YELLOW);
add(pnlChart, BorderLayout.NORTH);
JPanel pnlTrSet = new JPanel(new FlowLayout(FlowLayout.LEADING, 5, 5));
//pnlTrSet.setSize(860, 380);
for (FccMeta fccMeta : ffcms) {
JPanel pnlCard = new MyCustomPanelCard();
pnlTrSet.add(pnlCard);
}
JScrollPane scroll = new JScrollPane(pnlTrSet);
//scroll.setPreferredSize(new Dimension(860, 380));
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
add(scroll, BorderLayout.CENTER);
}
}
EDIT
. 나는 this ClassScrollablePanel pnlTrSet = new ScrollablePanel(new FlowLayout());
pnlTrSet.setScrollableWidth(ScrollablePanel.ScrollableSizeHint.FIT);
pnlTrSet.setScrollableBlockIncrement(
ScrollablePanel.VERTICAL, ScrollablePanel.IncrementType.PIXELS, 230);
당신은 스크롤의 뷰포트의 크기에 고정 된 폭을 갖도록하여 패널의
Scrollable
인터페이스를 구현해야
1) 더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 2) ASCII 아트 또는 GUI의 * 의도 된 * 레이아웃의 간단한 그림을 최소한의 크기로 제공하고 크기를 조정할 수 있으면 더 많은 너비와 높이를 제공하십시오. –