Как события работают в Java Swing?

Я не уверен насчет термина , конкретного div здесь. Может быть, вы можете попробовать с toggle(). У вас также есть синтаксическая ошибка при переносе селектора:

$(document).ready(function() {
  $('.category > div').on('click', function(){
    $('.wrapper').toggle();
  })
});
/*styles individual divs in the category class*/
.category > div:hover {
    cursor: pointer;
    transform-style: flat;
    animation-delay: 0.1s;
    display: flex;
    border: 1px 1px 1px 1px solid;
    background-color: #898488;
    color: #7AC4EE;
    border-left-color: yellow;
    box-sizing: border-box; 
}
/*class that i want to display on click*/
.wrapper {
    display: none;
    flex-wrap: wrap;
    justify-content: space-between;
    background-color: white;
    box-sizing: border-box;
    width: 623px;
    padding: 0;
    align-self: center;
    height: 100%;
    margin-bottom: auto;
    box-shadow:  0px 3px 7px 0px rgba(0,0,0,0.3);
}
/*the classes below are in .wrapper*/
.control {
   flex: 1;  
   background:white; 
   position: relative;
}

.content {
   flex: 4;
   height: 92%;
   width: 415px;
   margin-top: 5px;
   margin-bottom: 5px;
   background: lightblue;
   position: relative;
}
.content_desc {
   flex: 2;
   height: 22px;
   width: 415px;
   margin-top: 370px ;
   margin-left: 104px;
   margin-right: 98.5px;
   background-color: white;
   border: 0.3px solid;
   position: absolute;
}

.control img {
   position: absolute;
   left: 50%;
   top: 50%;
   height: 40px;
   width: 40px;
   background: white;
   box-sizing: border-box;
   transform: translate(-50%, -50%);
}
.control img:hover {
   cursor: pointer;
   background-color: yellow;
   transition-delay: 0.2s;
   animation: 0.1s ease-in;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="category">
    <div class="furniture">Furniture</div>
    <div class="tableware">Tableware</div>
    <div class="jewellery">Jewellery</div>
    <div class="shoes">Shoes</div>
    <div class="water_bottles">Water Bottles</div>
    <div class="clothes">Clothes</div>
    <div class="textiles">Fabric Patterns</div>
</div>

<div class="upload">
    <div class="wrapper">
        <div class="control"><img src="back.png"></div>
            <div class="content"></div>
            <div class="content_desc"></div>
            <div class="control"><img src="forward.png"></div>
        </div>
    </div>

6
задан tucuxi 16 November 2012 в 12:04
поделиться

3 ответа

Механизм события Java является на самом деле реализацией шаблона разработки The Observer. Я предлагаю, чтобы Вы сделали alittle, читающий на шаблоне "наблюдатель", это даст Вам большое понимание о том, как механизм события в Java работает.

См. шаблон "наблюдатель" на Википедию

10
ответ дан 8 December 2019 в 14:49
поделиться

Обычно события обрабатываются путем регистрации функции обратного вызова с классом, который сгенерировал бы событие. Когда событие будет иметь место, тот класс назовет функцию обратного вызова.

Вы найдете много примеров от колебания. Вот пример неколебания из приложения чата, я сделал некоторое время назад

Это было библиотекой, которая позволит разработчику встроить возможности чата в их приложения. Класс ChatClient имеет члена типа IMessageListener

IMessageListener listener;

Afer, создающий объект для класса ChatClient, пользователь назовет setListener на объекте. (Мог быть addListerer для нескольких слушателей),

public void setListener(IMessageListener listener) {
    this.listener = listener;
}

И в методе библиотеки, когда сообщение получено, я назвал бы getMessage метод на том объекте прослушивателя

Это было основным примером. Более сложные библиотеки использовали бы более сложные методы, как реализация очередей событий, поточная обработка, параллелизм и т.д.

Править: И Да. это - шаблон "наблюдатель" действительно

6
ответ дан 8 December 2019 в 14:49
поделиться

Существует учебное руководство на eveng, обрабатывающем здесь: http://java.sun.com/docs/books/tutorial/uiswing/events/index.html

Это о Swing. Если это не работает, возможно, Вы могли бы быть немного более конкретными?

0
ответ дан 8 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: