Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 238 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 544 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.8K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.5K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 437 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
Problem with Displaying ListBox (i.e. JList)

Hi,
I am to store values in a listbox. I have created frame & a panel inside a frame & i am using BorderLayout inside panel. I have created a button & a listBox & added them to the panel. But when i run the application, it displays the button only & when i increase the size of window then it displays the listbox neighboring to the button.
My code is:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/** the panel
*/
public class ListBoxEg extends JFrame{
private JButton button;
JList<String> listbox;
DefaultListModel<String> model;
public ListBoxEg() {
JFrame frame = new JFrame("Test");
frame.setVisible(true);
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout( new BorderLayout() );
button=new JButton("Hello");
panel.add(button, BorderLayout.WEST);
String listData = "ABCDE";
// Create a new DefaultListModel
model = new DefaultListModel<> ( );
//Adding Elements in the model
model.addElement(listData);
listData ="12345";
model.addElement(listData);
listData ="!!!!!!";
model.addElement(listData);
@";
model.addElement(listData);
//Creating a new ListBox
listbox= new JList<>();
//Adding Elements in the ListBox
listbox.setModel(model);
panel.add( listbox, BorderLayout.CENTER );
pack();
MyActionListener listener=new MyActionListener(); //added
button.addActionListener(listener);
}
public static void main(String args[ ]) {
ListBoxEg obj = new ListBoxEg( );
}
}
class MyActionListener implements ActionListener{
public void actionPerformed (ActionEvent e) {
System.out.println("pressed button");
}
}
Some body please guide me.
Zulfi.
Best Answer
-
Hi,
Thanks. Actually problem was with BorderLayout.CENTER. I replaced it with BorderLayout.EAST. Also my setVisible(..) statement was misplaced. The complete code is:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/** the panel
*/
public class ListBoxEg2 extends JFrame{
private JButton button;
JList<String> listbox;
DefaultListModel<String> model;
public ListBoxEg2() {
JFrame frame = new JFrame("Test");
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout( new BorderLayout() );
button=new JButton("Hello");
panel.add(button, BorderLayout.WEST);
String listData = "ABCDE";
// Create a new DefaultListModel
model = new DefaultListModel<> ( );
//Adding Elements in the model
model.addElement(listData);
listData ="12345";
model.addElement(listData);
listData ="!!!!!!";
model.addElement(listData);
@";
model.addElement(listData);
//Creating a new ListBox
listbox= new JList<>();
//Adding Elements in the ListBox
listbox.setModel(model);
panel.add( listbox, BorderLayout.EAST );
pack();
MyActionListener listener=new MyActionListener(); //added
button.addActionListener(listener);
frame.setVisible(true);
}
public static void main(String args[ ]) {
// Run the GUI construction in the Event-Dispatching thread for thread-safety
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ListBoxEg2(); // Let the constructor do the job
}
});
}
}
Zulfi.
Answers
-
Hi Zulfi,
replace the below code
<code>
frame.setVisible(true);
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
<code>
after adding the listbox to panel.
example
<code>
panel.add( listbox, BorderLayout.EAST );
frame.setVisible(true);
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
<code>
-
Hi,
Thanks. Actually problem was with BorderLayout.CENTER. I replaced it with BorderLayout.EAST. Also my setVisible(..) statement was misplaced. The complete code is:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/** the panel
*/
public class ListBoxEg2 extends JFrame{
private JButton button;
JList<String> listbox;
DefaultListModel<String> model;
public ListBoxEg2() {
JFrame frame = new JFrame("Test");
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout( new BorderLayout() );
button=new JButton("Hello");
panel.add(button, BorderLayout.WEST);
String listData = "ABCDE";
// Create a new DefaultListModel
model = new DefaultListModel<> ( );
//Adding Elements in the model
model.addElement(listData);
listData ="12345";
model.addElement(listData);
listData ="!!!!!!";
model.addElement(listData);
@";
model.addElement(listData);
//Creating a new ListBox
listbox= new JList<>();
//Adding Elements in the ListBox
listbox.setModel(model);
panel.add( listbox, BorderLayout.EAST );
pack();
MyActionListener listener=new MyActionListener(); //added
button.addActionListener(listener);
frame.setVisible(true);
}
public static void main(String args[ ]) {
// Run the GUI construction in the Event-Dispatching thread for thread-safety
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ListBoxEg2(); // Let the constructor do the job
}
});
}
}
Zulfi.