日期:2014-05-20  浏览次数:20671 次

JTABLE里面放JLABEL加鼠标事件显示边框速度慢问题
初学JAVA,在做一个图片浏览器的时候碰到个问题

缩略图我想用JTtable做,然后就重载了DefaultTableCellRenderer的getTableCellRendererComponent方法,把返回值改成了Jlabel

接着我在JTtable里加了个鼠标事件,为选中的单元格的LABEL加上边框,但是显示起来非常慢,或者把窗口最小化再还原后border才会出现。然后我就在setborder语句后面加上了一句JOptionPane,显示就正常了。那么我想应该不是阻塞了啊什么的关系,应该是组件的显示绘制问题。
我又试着加了validate和updateComponentTreeUI,但是都不行,故来请教一下这是什么原因,要怎么解决,望高手指教。

关键代码如下:


//thumbnailTable自定义的JTable
thumbnailTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int row=thumbnailTable.getSelectedRow();
int column=thumbnailTable.getSelectedColumn();
if (selectedLabel!=null) {
……
}
selectedLabel=(JLabel)thumbnailTable.getValueAt(row, column);
selectedLabel.setBorder(new LineBorder(Color.GRAY));
……
}
});

------解决方案--------------------
该回复于2010-12-21 14:44:08被版主删除