• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как сравнить Icon в Jlabel

  • Автор темы Tashka
  • Дата начала
T

Tashka

Пишу игрушку “парные картинки”. Мне нужно сравнить Icon в jLabel, если они равны – скрыть их, если нет – закрыть при щелчке на другой jLabel (рубашкой кверху)
Пишу так:
private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {
if (jLabel1.getIcon() == jLabel3.getIcon())
{jLabel3.setVisible(false);jLabel1.setVisible(false);}
Else
{jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("rose.jpg")));
jLabel3.setIcon(newjavax.swing.ImageIcon(getClass().getResource("rose.jpg")));}}//обратная сторона картинки
Они не сравниваются. Может кто-нибудь знает как их сравнить?
 
T

Tashka

За ссылку конечно спасибо, там все на английском, времени нет разбираться. Сейчас у меня другая проблема:
если я сравниваю не Icon, а текст в jLabel, почему то условие после else никогда не выполняется, если кто-нибудь знает в чем дело, подскажите, пожалуйста. ;)
private void jLabel2MousePressed(java.awt.event.MouseEvent evt) {
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("small2.jpg")));
javax.swing.Timer timer = new javax.swing.Timer( 2000, new ActionListener()
{
public void actionPerformed(ActionEvent ev)
{
if (jLabel2.getInputContext() == jLabel5.getInputContext())
{ jLabel2.setVisible(false);jLabel5.setVisible(false);}
else
{jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("rose.JPG")));
jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("rose.JPG")));
}
}
} );
timer.setRepeats(false);
timer.start();

}
 
T

Tashka

Cо ссылкой разобралась, там тоже самое что в Netbeans в сплывающей подсказке выползает на equals, еще раз спасибо. Сейчас текст в jLabel сравнивается:
if ( jLabel1.getText().equals(jLabel3.getText()))
Вот только, как записать массив из jLabel, чтобы jLabel1 сравнивать не только с jLabel3 (у меня 16 jLabel), а с элементами массива.
 
J

jCoder

Попробуй создать массив типа Object[], и заполнить его этими 16-ю элементами. А при сравнении элементов, я думаю это все будет происходить в цикле, будешь делать приведение типов и использовать всё тот же equals(). Это как один из вариантов.
Но лучше всего мне кажется будет воспользоваться коллекционным классом ArrayList. Создать объект этого типа заполнить его и поработать с ним.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!