내 JList에서 내 JPanels를 왼쪽으로 정렬하는 방법에 문제가 있습니다.왼쪽의 JList 항목 (JPanels) 정렬
저는 사용자 정의 ListCellRenderer를 사용하므로 JPanels가 전혀 렌더링되지 않습니다.
public class FileTab extends JPanel implements ListCellRenderer<FileProperties> {
public FileTab(int w, int h) {
setSize(w, h);
}
private void initComponents(FileProperties prop, boolean selected) {
removeAll();
JCheckBox checkBoxSelection = new JCheckBox();
checkBoxSelection.setBounds(10, 10, 10, 10);
add(checkBoxSelection);
checkBoxSelection.setSelected(selected);
System.out.println("Draw: " + prop.getFileName());
JLabel labelFileName = new JLabel(prop.getFileName());
labelFileName.setBounds(5, 70, getWidth() - 85, 20);
labelFileName.setFont(new Font("Consolas", Font.ITALIC, 20));
add(labelFileName);
}
@Override
public Component getListCellRendererComponent(JList<? extends FileProperties> list, FileProperties prop, int index,
boolean isSelected,
boolean cellHasFocus) {
initComponents(prop, isSelected);
return this;
}
}
그리고 내가 목록을 작성하는 방법을 먹으 렴 다음 JPanel의이 아니라 왼쪽보다 중앙에 정렬
JScrollPane scroll = new JScrollPane();
scroll.setBounds(5, 5, getWidth() - 10, getHeight() - 110);
list = new DefaultListModel<>();
fileList = new JList<>(list);
fileList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
fileList.setCellRenderer(new FileTab(getWidth() - 30, 30));
scroll.setViewportView(fileList);
add(scroll);
이이 결과.
그리고 목록의 갱신 :
list.clear();
for (FileProperties props : files) {
list.addElement(props);
}
fileList.setCellRenderer(new FileTab(getWidth() - 30, 30));
을 당신이 왼쪽 정렬을 의미 같아요. – succcubbus
예, 때로는 손가락이 생각하는 것을 입력하지 않습니다. :) – camickr