저는 Component Design 과정을위한 프로그램을 구현 중이며 현재 Jlist를 단순하게 사용해야하는 것과 어려움을 겪고 있습니다. 이 프로그램은 도형을 그리며 프레임의 BorderLayout.West에있는 ScrollPane의 JList에 표시해야합니다.DefaultListModel이 AddElement를 사용하여 변경 될 때 JList가 표시되지 않습니다.
현재 프로그램은 ScrollPane을 보여 주지만, shapeListModel에 추가 한 객체를 표시하지 않습니다. 내가 뭔가를 놓치고 있거나 뭔가 코드가 잘못되었다는 것이 궁금합니다. 현재 이것은 JList 생성, 할당 및 업데이트와 관련된 모든 코드입니다.
//Class Variable Declaration
protected ArrayList<Shape> shapes = new ArrayList<Shape>();
private JScrollPane shapeScrollPane = new JScrollPane();
private JList<String> shapeList;
protected DefaultListModel<String> shapeListModel;
//Creation of JList objects and what not
shapeListModel = new DefaultListModel<String>();
//This element is added aimply to try and get one to show up on my JList,
shapeListModel.addElement("SERIOUSLY FRUSTRATED");
//It does not just so you know
shapeList = new JList<String>(shapeListModel);
shapeList.setModel(shapeListModel);
//Adding JList to ScrollPane and setting size
shapeScrollPane.add(shapeList);
shapeScrollPane.setPreferredSize(new Dimension(250,600));
//Clarifying JList actions
shapeList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
shapeList.setLayoutOrientation(JList.HORIZONTAL_WRAP);
shapeList.setVisibleRowCount(-1);
shapeList.addListSelectionListener(this);**
//This is called everytime a new shape is created and adds it to the Arraylist
//shapes and the DefaultListModel shapeListModel
shapes.add(newShape);
shapeListModel.addElement(newShape.toString());
몇 분 전에 잘못된 형식의 질문에 사과드립니다. 나는 약 4 시간 동안이 일에 매달 렸고, 마지막 두 시간은 온라인으로 답을 찾는 데 썼다. 나는 지금 내가 가진 코드 안에 문제가 있는지 물어 보는 결과를 얻는다.
'shapeList.setVisibleRowCount (-1);이 (가) 문제의 일부일 수 있습니다. – mre
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –