2014-04-13 3 views
0

나는 coursename이라는 JButton을 가지고 있는데,이 JButton에는 사용자에게 코스 이름을 입력하도록 요청하는 JOptionPane을 채우는 actionListener가 있습니다. 코스 추가 작업이 완료된 후에 표시 할 코스 이름을 JList에 추가하려고합니다. actionListener 메소드에서 classList.add (입력)를 시도했지만 작동하지 않습니다. 어떤 도움을 주셔서 감사합니다. 팁을 주셔서 감사합니다. 나는 완전한 코드를 따른 것이 아니다. 감사. 예를 들어, JList를 처리 할 때JOptionPane에서 캡처 한 사용자 입력을 통해 JList에 데이터를 추가하려면 어떻게해야합니까?

import javax.swing.*; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class LabEleven extends JFrame{ 

    public LabEleven(){ 
String[] list = {"Math", "\nComputer", "\nPhysics", "\nChemistry"}; // create array  of String data for JList 
JList<String> classList = new JList<String> (list); // create JList to pass to  JPanel 

JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 2)); 
p1.add(classList); 
p1.setBackground(Color.white); 

JPanel p2 = new JPanel(new FlowLayout(FlowLayout.RIGHT, 2, 2)); 


// add "add course" button and attach action listener 
JButton course = new JButton("Add Course"); 
course.addActionListener(new ActionListener(){ 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     String input = (JOptionPane.showInputDialog("Please enter another course")); 

    } // end actionPerformed 

}); // end addActionListener 

// add "close" button and attach action listener 
JButton close = new JButton("Close"); 
close.addActionListener(new ActionListener(){ 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     System.exit(0); 

    } // end actionPerformed 

}); // end addActionListener 


p2.add(course); 
p2.add(close); 


add(p1, BorderLayout.CENTER); 
add(p2, BorderLayout.SOUTH); 

} // end LabEleven constructor 

public static void main(String[] args) { 
    JFrame frame = new LabEleven(); 
    frame.setSize(400, 420); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 

} // end main method 

} // end LabEleven class 

답변

1

당신은 DefaultListModel 쉽게 관리를 ListModel를 사용한다. 그런 다음 목록의 동적 채우기에 DefaultListModel.addElement 메서드를 사용할 수 있습니다.

당신은, 당신은


How to use Lists에서 자세한 내용을 참조하십시오 어쩌면 사용하는 부분에 초점을 리스너에 model.addElement(input)을 그 일을 한 후 모델

final DefaultListModel model = new DefaultListModel(); 
JList jList = new JList(model); 
// you can loop to populate the model here with your default list[] data 

으로 목록을 초기화하는 최초의 필요성을 호출 할 수 있습니다 모델.

더 많은 사용 가능한 방법은 DefaultListModel에 대한 API도 참조하십시오.

+0

dlm을 Final이라고 선언했지만 고맙습니다. 나는 그것이 왜 있는지보기 위해 약간의 독서를 할 것입니다. 도움에 감사드립니다. – imnotmarvin

+0

문제를 해결하는 데 도움이 되었다면 답을 수락 (확인 표시)하는 것을 잊지 마십시오. –

+0

[these] (https://www.google.com/search?q=local%20va#q=local%20variable%20needs%20to%20be%20declared%20final) 중 일부를 확인하십시오. –

관련 문제