[英]How i can repaint my JList after press a item?
My question is, how i can repaint my JList after double click on the List-Item? 我的问题是,双击列表项后如何重绘JList? Please help me I'm new in java thats my first Java programm. 请帮助我,我是Java的新手,这是我的第一个Java程序。
Here my JList snipped: 这里我的JList片段:
mday and mtime comes from a database with the strings for the JList mday和mtime来自数据库,其中包含JList的字符串
liste = new JList(mday);
System.out.println(mday);
list.frame.add(liste, BorderLayout.CENTER);
list.frame.validate();
list.frame.repaint();
liste.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
liste0 = (JList) evt.getSource();
if (evt.getClickCount() == 2) {
int index = liste0.locationToIndex(evt.getPoint());
index = index + 1;
System.out.println(index);
try {
c = DriverManager.getConnection(DB_PATH);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Opened database successfully");
try {
stmt = c.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "SELECT * from playscr WHERE _id LIKE " + index;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DefaultListModel<String> mtime = new DefaultListModel<String>();
try {
while(rs.next()){
String name = "";
String zeit = rs.getString("zeit");
String daten = "";
GetData data = new GetData(name, zeit, daten);
mtime.addElement(data.toString());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
liste = new JList(mtime);
System.out.println(mtime);
list.frame.revalidate();
list.frame.repaint();
list.frame.add(liste, BorderLayout.CENTER);
}
}
});
You need't to recreate your JList
, just create list with default model. 您无需重新创建JList
,只需使用默认模型创建列表即可。 JList<String> list = new JList<String>(new DefaultListModel<String>());
and then in mouse listener remove items from model: ((DefaultListModel<String>)list.getModel()).removeAllElements();
然后在鼠标侦听器中从模型中删除项目: ((DefaultListModel<String>)list.getModel()).removeAllElements();
and add new items ((DefaultListModel<String>)list.getModel()).addElement("test");
并添加新项目((DefaultListModel<String>)list.getModel()).addElement("test");
Read JList
tutorial . 阅读JList
教程 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.