2014-10-29 6 views
0

프로젝트 용 JLists로 작업해야하며 몇 가지 작업을하려고합니다. 여기 내 목록입니다 : cartList에 BooksList에서 항목을 이동JLists 사용하기 Java Swing에서

I Did It Your Way;11.95 
The History of Scotland;14.50 
Learn Calculus in One Day;29.95 
Feel the Stress;18.50 
Great Poems;12.95 
Europe on a Shoestring;10.95 
The Life of Mozart;14.50 

1.), 특히 내가하지만 경우 새로 추가 된 항목을 추가 할 필요 다음 BooksList에서

JList<String> BooksList = new JList<String>(booksList); 
books.add(BooksList, BorderLayout.CENTER); 
BooksList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 


JList cartList = new JList(); 
cart.add(cartList, BorderLayout.CENTER); 
cartList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 

다음과 같은 항목은 다음과 같습니다 한 번에 하나씩 항목을 추가하려고하면 새 항목으로 cartList에 이미있는 내용을 대체합니다. 여기에 내가 가지고있는 코드는 다음과 같습니다.

//Adding To Cart 
JButton AddToCart = new JButton("Add To Cart"); 
AddToCart.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     ArrayList<String> selectionList = (ArrayList<String>) BooksList.getSelectedValuesList(); 
     Object[] selections = selectionList.toArray(); 
     cartList.setListData(selections); 
    } 
}); 
AddToCart.setToolTipText("Alt + A For Auto Add"); 
AddToCart.setBounds(264, 178, 117, 25); 
AddToCart.setMnemonic(KeyEvent.VK_A); 
frame.getContentPane().add(AddToCart); 

2.) 장바구니 목록 지우기 어떤 이유로 든이 코드를 클릭하면 아무 일도 일어나지 않습니다. 코드는 다음과 같습니다.

//This Will Clear The Whole Cart List 
JMenuItem Clear = new JMenuItem("Clear         Alt + C"); 
cartMenu.add(Clear); 
Clear.setMnemonic(KeyEvent.VK_C); 
Clear.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent arg0) { 
     DefaultListModel tempModel = (DefaultListModel)cartList.getModel(); 
     tempModel.removeAllElements(); 
    } 

}); 

3) 3. 선택한 항목을 제거합니다. 2 항목과 동일한 것은 아무 것도하지 않습니다. 당신이 JList에 추가 할 때

//Remove A Selected Item From The List 
JMenuItem RemoveSelected = new JMenuItem("Remove Selected    Alt + R"); 
cartMenu.add(RemoveSelected); 
RemoveSelected.setMnemonic(KeyEvent.VK_R); 
RemoveSelected.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) { 
     DefaultListModel tempModel = (DefaultListModel)cartList.getModel(); 
     int selected = cartList.getSelectedIndex(); 
     if(selected != -1) 
     { 
      tempModel.remove(selected); 
     } 
    } 
}); 
+1

어떤 방식으로 붙어 있습니까? 오류가 있습니까? – APerson

+0

1의 경우 BooksList에서 cartList에 여러 항목을 추가하고 한 번에 하나씩 추가 할 수 있어야합니다. 그러나 모든 항목을 한 번에 하나씩 추가하려고하면 cartList의 항목을 지우고 의 새 항목 2와 3은 그냥 작동하지 않습니다. 항목을 클릭하면 아무 일도 일어나지 않습니다. – ghost1349

+1

귀하의 * 질문에 *이 정보를 덧붙이십시오. –

답변

4

, 당신은 직접 ListModel보다는에 추가 할 : 나는 다음과 같은 코드가 나는 그것을 테스트 할 기회가 없었어요

DefaultListModel tempModel = (DefaultListModel) cartList.getModel(); 
for (String s: BooksList.getSelectedValuesList()) 
    tempModel.addElement(s); 

을, 그러나 그것은 올바른 접근법입니다. 현재 .setListData()으로 전화를 걸면 무엇이 있는지 확인하고 바꿉니다. 이렇게하면 대신 뭔가가 추가됩니다.

this question이 도움이 될 수 있습니다.