我创建了自己的 CellRenderer,其中包括一些字符串和 JList 项目中的 JProgressBar ...但是 JProgressBar 和整个 JList 项目将绘制一次,我正在寻找一种重新绘制项目的方法......我试过了启动一个线程,这将永久重新绘制......但我不知道我必须重新绘制什么才能得到结果......
JList repaint ...没有结果 CellRenderer repaint ...没有结果 JFrame repaint ...没有结果
有人了解我的问题并知道出路吗?
非常感谢!
更新:[更新已删除]
下一个更新:
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.ListCellRenderer;
public class Main extends JFrame{
public DefaultListModel contentListModel = new DefaultListModel();
public MyCellRenderer MCR = new MyCellRenderer();
public JList contentList = new JList(contentListModel);
public Main(){
super("Example");
setMinimumSize(new Dimension(300,300));
setDefaultCloseOperation(EXIT_ON_CLOSE);
contentList.setCellRenderer(MCR);
contentListModel.addElement("");
contentListModel.addElement("");
add(contentList);
}
public static void main(String[] args){
new Main().setVisible(true);
}
class MyCellRenderer extends JPanel implements ListCellRenderer{
public MyCellRenderer(){
JProgressBar jpb = new JProgressBar();
jpb.setIndeterminate(true);
add(jpb);
}
@Override
public Component getListCellRendererComponent(JList arg0, Object arg1,
int arg2, boolean arg3, boolean arg4) {
// TODO Auto-generated method stub
return this;
}
}
}