How to Append an item to a JList Model
Apart from getting JList model and getting element at a certain index ,we can also append items to a JList Model .Run below code
Code to Append an item to a JList Model
[
import javax.swing.JFrame; import javax.swing.JList; import javax.swing.DefaultListModel; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; import javax.swing.JScrollPane; public class JavaJListExample extends JFrame { public JList list; public JButton b; JavaJListExample() { super("JList"); DefaultListModel model=new DefaultListModel(); model.addElement("C++"); model.addElement("Java"); model.addElement("PHP"); model.addElement("C#"); model.addElement("Python"); list=new JList(model); list.setVisibleRowCount(3); JScrollPane pane=new JScrollPane(list); pane.setBounds(50, 20, 100, 100); add(pane); b=new JButton("Add"); b.setBounds(50, 150, 100, 30); add(b); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { int position=list.getModel().getSize(); String s=JOptionPane.showInputDialog(null,"Enter Java Language",""); model.add(position,s); } }); setSize(400,400); setLayout(null); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public static void main(String args[]) { new JavaJListExample(); } }
]
Code Explanation:
Above code implements JButton ActionListener Interface.As i have stated earlier, once you implement a certain interface and the class is not abstract, you are required to override all abstract methods of the interface.
When the JButton is clicked, abstract method public void action performed is executed:
[ public void actionPerformed(ActionEvent event)
{ int position=list.getModel().getSize(); String s=JOptionPane.showInputDialog(null,"Enter Java Language",""); model.add(position,s);
}]
The method gets ListModel and its size.
JOptionPane:showInputDialog request user to enter a programming language.The string is returned and appended to listModel.
Other methods:
- [ setDefaultCloseOperation(EXIT_ON_CLOSE);]-exits application when close button is clicked.
- [setBounds(50, 150, 100, 30);]-position JComponents on a JFrame.