public class TestList extends JFrame implements ListSelectionListener {
JTextArea jta;
JList list;
JPanel jp;
String[] address = {"北京","天津","沈阳","上海","葫芦岛","大连","成都","北京","天津","沈阳","上海","葫芦岛","大连","成都","北京","天津","沈阳","上海","葫芦岛","大连","成都"};
public void list() {
jta = new JTextArea(10,30);
list = new JList(address);
jp = new JPanel();
jp.setLayout(null);
list.setBounds(60, 50, 300, 190);
jp.add(new JScrollPane(list));
Container con = this.getContentPane();
con.add(jta,BorderLayout.NORTH);
con.add(jp,BorderLayout.CENTER);
list.addListSelectionListener(this);
setDefaultCloseOperation(3);
setSize(500,500);
setVisible(true);
}
请帮忙改一下。
3 个解决方案
#1
#2
那 在jpanel上不能放JScrollPanel 吗 ?因为我在Jpanel上还有其他的组件,这些组件中只有JList需要滚动条
#3
JScrollPane的size你不设置的话是(0,0),在没布局管理的情况下肯定是看不到的。
你可以试着这样做:
jta = new JTextArea(10,30);
list = new JList(address);
jp = new JPanel();
jp.setLayout(null);
list.setBounds(60, 50, 300, 190);
JScrollPane pane = new JScrollPane();
pane.setSize(new Dimension(70, 200));//手动设置为指定值。
pane.setViewportView(list);
jp.add(pane);
Container con = this.getContentPane();
con.add(jta,BorderLayout.NORTH);
con.add(jp,BorderLayout.CENTER);
list.addListSelectionListener(this);
setDefaultCloseOperation(3);
setSize(500,500);
setVisible(true);
最后问一下,你重写JFrame的list()方法来初始化是为什么?
我很费解!
你可以试着这样做:
jta = new JTextArea(10,30);
list = new JList(address);
jp = new JPanel();
jp.setLayout(null);
list.setBounds(60, 50, 300, 190);
JScrollPane pane = new JScrollPane();
pane.setSize(new Dimension(70, 200));//手动设置为指定值。
pane.setViewportView(list);
jp.add(pane);
Container con = this.getContentPane();
con.add(jta,BorderLayout.NORTH);
con.add(jp,BorderLayout.CENTER);
list.addListSelectionListener(this);
setDefaultCloseOperation(3);
setSize(500,500);
setVisible(true);
最后问一下,你重写JFrame的list()方法来初始化是为什么?
我很费解!
#1
#2
那 在jpanel上不能放JScrollPanel 吗 ?因为我在Jpanel上还有其他的组件,这些组件中只有JList需要滚动条
#3
JScrollPane的size你不设置的话是(0,0),在没布局管理的情况下肯定是看不到的。
你可以试着这样做:
jta = new JTextArea(10,30);
list = new JList(address);
jp = new JPanel();
jp.setLayout(null);
list.setBounds(60, 50, 300, 190);
JScrollPane pane = new JScrollPane();
pane.setSize(new Dimension(70, 200));//手动设置为指定值。
pane.setViewportView(list);
jp.add(pane);
Container con = this.getContentPane();
con.add(jta,BorderLayout.NORTH);
con.add(jp,BorderLayout.CENTER);
list.addListSelectionListener(this);
setDefaultCloseOperation(3);
setSize(500,500);
setVisible(true);
最后问一下,你重写JFrame的list()方法来初始化是为什么?
我很费解!
你可以试着这样做:
jta = new JTextArea(10,30);
list = new JList(address);
jp = new JPanel();
jp.setLayout(null);
list.setBounds(60, 50, 300, 190);
JScrollPane pane = new JScrollPane();
pane.setSize(new Dimension(70, 200));//手动设置为指定值。
pane.setViewportView(list);
jp.add(pane);
Container con = this.getContentPane();
con.add(jta,BorderLayout.NORTH);
con.add(jp,BorderLayout.CENTER);
list.addListSelectionListener(this);
setDefaultCloseOperation(3);
setSize(500,500);
setVisible(true);
最后问一下,你重写JFrame的list()方法来初始化是为什么?
我很费解!