给个提示就是模型-视图-控制器分离的概念,你的方法是实现不了的你要写个类继承AbstractListModel
getElementAt是用来显示数据的,他会显示可视区的数据(表达有问题,你理解一下)然后你写得类作为参数实例化JList还有JList两个方法要调用list.setFixedCellWidth(50);
list.setFixedCellheight(15);
getElementAt是用来显示数据的,他会显示可视区的数据(表达有问题,你理解一下)然后你写得类作为参数实例化JList还有JList两个方法要调用list.setFixedCellWidth(50);
list.setFixedCellheight(15);
list.setModel(DefaultModel);之后你可以向DefaultModel中Add或Remove数据,可以马上显示出来。
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
JList jl=null;
JButton jb=new JButton("addRow");
Vector v=new Vector();
public test() {
this.setSize(400,300);
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(new FlowLayout());
v.addElement("1");
jl=new JList(v);
jl.setFixedCellWidth(50);
contentPane.add(jl);
contentPane.add(jb);
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addRow(e);
}
});
this.setVisible(true);
} protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
} public void addRow(ActionEvent e) {
v.addElement("1");
jl.updateUI();
jl.validate();
this.validate();
}
}