In meinem Programm gibt es eine JList,welche Logmeldungen enthält. Unter Linux wird teilweise der gesamte Inhalt nicht angezeigt und später, wenn neue Meldungen dazu kommen, wieder angezeigt. Dieses Verhalten hatte ich unter Windows erst einmal.
[highlight=Java]
//Statuslist
JList jl = new JList(statusList);
jl.setCellRenderer(new StatusListRenderer());
public void addStatus(String message, Color color)
{
//Msg object
StatusMessage msg = new StatusMessage();
msg.setMessage(Calendar.getInstance().getTime() + " " + message);
msg.setColor(color);
//Add data to the list
statusList.add(0, msg);
System.out.println(message);
}
[/highlight]
[highlight=Java]
public class StatusListRenderer extends DefaultListCellRenderer implements ListCellRenderer
{
private static final long serialVersionUID = -2426469711174637700L;
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected,
cellHasFocus);
//Message object
StatusMessage msg = (StatusMessage) value;
setForeground(msg.getColor());
setText(msg.getMessage());
return this;
}
}
[/highlight]
[highlight=Java]
//Statuslist
JList jl = new JList(statusList);
jl.setCellRenderer(new StatusListRenderer());
public void addStatus(String message, Color color)
{
//Msg object
StatusMessage msg = new StatusMessage();
msg.setMessage(Calendar.getInstance().getTime() + " " + message);
msg.setColor(color);
//Add data to the list
statusList.add(0, msg);
System.out.println(message);
}
[/highlight]
[highlight=Java]
public class StatusListRenderer extends DefaultListCellRenderer implements ListCellRenderer
{
private static final long serialVersionUID = -2426469711174637700L;
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected,
cellHasFocus);
//Message object
StatusMessage msg = (StatusMessage) value;
setForeground(msg.getColor());
setText(msg.getMessage());
return this;
}
}
[/highlight]