でJLabelの配列は、これは私のクリックアクションで参照する方法:のJPanel
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
}
});
「Labelpanelは」の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画像を参照してくださいプログラムの開発を作成したいです。私は、最初にクリックすると、ラベルが[5-5]、ラベルが[5-10]、3回目[10-11]などのように表示されます。 「succ」をクリックすると、最初に5つしか表示されないのはなぜですか? もう一度クリックして最初の5枚の画像をパネルに残すと、他の5枚のlabelappが表示されますか?
(REMOVEALLと私は私の最後のJLabelを参照カント:。。その後、新しいラベルを追加し、revalidate()
とrepaint()
を呼び出すlabelPanel
から以前のすべてのラベルを削除するには
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;
}
});
「ステータス」値とは何ですか?あなたはどこを変えますか? – rdonuk
ステータスは 'private int status = 0;' .. 'succ'ステータス= 5(最初の5イメージを参照)をクリックすると、ステータス= 10(私は5から10のiイメージを参照)を再びクリックします。閉じるときに変更する( 'status = status + 5;') –
ダブルクリック後に10個のラベルを表示しますか?または、最後の5つのラベルのみ? – rdonuk