这是我的点击操作:
succ.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int x=0;
int i;
labelpanel.revalidate();
labelpanel.repaint();
for (i=status; i<status+5; i++){
RidimIcon locand = new RidimIcon();
labelapp.get(i).setBounds(74+x, 1, 80, 90);
labelapp.get(i).setIcon(locand.newicona(pathicon[i], labelapp.get(i)));
labelpanel.add(labelapp.get(i));
x=x+120;
}
status=status+5; //change status
}
});
&#34; Labelpanel&#34;是一个JLabel数组:
try {
ResultSet rs = Datainter.eseguiQuery(query);
while(rs.next())
{
pathicon[contatore] = rs.getString("locandina");
JLabel tmplabel = new JLabel();
labelapp.add(tmplabel);
labelapp.get(contatore).setIcon(new ImageIcon(pathicon[contatore]));
contatore++;
}
} catch (SQLException e) {
e.printStackTrace();
}
我想创建在点击时看到5张图片的程序。我有50个图像的阵列标签,当我第一次点击时看到1 - 5个标签[1-5],当我第二次点击时我看到标签[5-10],第三次[10-11]等。 当我点击&#34; succ&#34;?为什么我只看到前5个labelapp 当我再次点击并在面板中留下前5个图像时,我怎么能看到其他5个labelapp?
(删除所有我无法看到我最后的Jlabels:
prec.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int x=0;
int i;
labelpanel.removeAll();
for (i=status; i<status-5; i--){
RidimIcon locand = new RidimIcon();
labelapp.get(i).setBounds(74+x, 1, 80, 90);
labelapp.get(i).setIcon(locand.newicona(pathicon[i], labelapp.get(i)));
labelpanel.add(labelapp.get(i));
x=x+120;
}
labelpanel.revalidate();
labelpanel.repaint();
status=status-5;
}
});
答案 0 :(得分:1)
使用removeAll()
删除labelPanel
中的所有先前标签。然后添加新标签并致电revalidate()
和repaint()
。
public void mouseClicked(MouseEvent arg0) {
int x=0;
int i;
labelpanel.removeAll();
for (i=status; i<status+5; i++){
RidimIcon locand = new RidimIcon();
labelapp.get(i).setBounds(74+x, 1, 80, 90);
labelapp.get(i).setIcon(locand.newicona(pathicon[i], labelapp.get(i)));
labelpanel.add(labelapp.get(i));
x=x+120;
}
labelpanel.revalidate();
labelpanel.repaint();
status=status+5; //change status
if(status > 17) {
status = 17;
}
}
和一些建议;