每次点击按钮的时候,都是把原来的给覆盖掉了,而不是我希望的再下一行添加字符;
请问下,要怎么改才能实现我的想法啊
package chartPackages;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CeshiTest extends JFrame implements ActionListener{
public JList list=new JList();
public JButton click=new JButton("点我");
public JTextField text=new JTextField();
public DefaultListModel listModel;
public IconListItem item;
//public int i;
public CeshiTest(){
super("JList");
setup();
setVisible(true);
pack();
click.addActionListener(this);
list.setCellRenderer(new GetListCellRender());
}
public void setup(){
setLayout(new GridLayout(3,1));
add(list);
add(text);
add(click);
}
public static void main(String[] args) {
CeshiTest ct=new CeshiTest(); }
public void addnewUser(String name){
System.out.println("addnewUser(String name)"+name);
//list.setCellRenderer(new GetListCellRender());//安装我们自订的cellRenderer
listModel = new DefaultListModel();
list.setModel(listModel);
item = new IconListItem(name);
// System.out.println("当前i的值为"+i);
listModel.addElement(item);// 为List增加Item
//i++;原本我准备用 }
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==click){
addnewUser(text.getText().toString());
}
}}package chartPackages;
import java.awt.Color;
import javax.swing.border.Border;
import javax.swing.*;
public class GetListCellRender extends JLabel implements ListCellRenderer
{
private Border
selectedBorder = BorderFactory.createLineBorder(Color.blue,1),
emptyBorder = BorderFactory.createEmptyBorder(1,1,1,1); public JComponent getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{ IconListItem item = (IconListItem)value;
this.setIcon(item.getIcon());
this.setText(item.getText()); if ( isSelected ) setBorder (selectedBorder);
else setBorder(emptyBorder);
return this;
}
}
package chartPackages;
import javax.swing.Icon;
class IconListItem
{
Icon icon;
String text;
public IconListItem(String text)
{
//this.icon = icon;
this.text = text;
}
public Icon getIcon() { return icon;}
public String getText() { return text;}
public void setIcon(Icon icon){ this.icon = icon;}
public void setText(String text){ this.text = text; }
}
请问下,要怎么改才能实现我的想法啊
package chartPackages;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CeshiTest extends JFrame implements ActionListener{
public JList list=new JList();
public JButton click=new JButton("点我");
public JTextField text=new JTextField();
public DefaultListModel listModel;
public IconListItem item;
//public int i;
public CeshiTest(){
super("JList");
setup();
setVisible(true);
pack();
click.addActionListener(this);
list.setCellRenderer(new GetListCellRender());
}
public void setup(){
setLayout(new GridLayout(3,1));
add(list);
add(text);
add(click);
}
public static void main(String[] args) {
CeshiTest ct=new CeshiTest(); }
public void addnewUser(String name){
System.out.println("addnewUser(String name)"+name);
//list.setCellRenderer(new GetListCellRender());//安装我们自订的cellRenderer
listModel = new DefaultListModel();
list.setModel(listModel);
item = new IconListItem(name);
// System.out.println("当前i的值为"+i);
listModel.addElement(item);// 为List增加Item
//i++;原本我准备用 }
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==click){
addnewUser(text.getText().toString());
}
}}package chartPackages;
import java.awt.Color;
import javax.swing.border.Border;
import javax.swing.*;
public class GetListCellRender extends JLabel implements ListCellRenderer
{
private Border
selectedBorder = BorderFactory.createLineBorder(Color.blue,1),
emptyBorder = BorderFactory.createEmptyBorder(1,1,1,1); public JComponent getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{ IconListItem item = (IconListItem)value;
this.setIcon(item.getIcon());
this.setText(item.getText()); if ( isSelected ) setBorder (selectedBorder);
else setBorder(emptyBorder);
return this;
}
}
package chartPackages;
import javax.swing.Icon;
class IconListItem
{
Icon icon;
String text;
public IconListItem(String text)
{
//this.icon = icon;
this.text = text;
}
public Icon getIcon() { return icon;}
public String getText() { return text;}
public void setIcon(Icon icon){ this.icon = icon;}
public void setText(String text){ this.text = text; }
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货