jCalendar отображает мусор в фоновом режиме

У меня есть JCalendar в JPanel и JList в другом JPanel, но что-то происходит в поле со списком месяцев, когда я нажимаю элемент JList, фон отображает часть элемента JList, например:

jcalendar

Я на Mac, я не знаю, то ли это внешний вид нимба, то ли ошибка ощущения или что-то в этом роде. Но у друга с Windows такая же проблема. Я использую JCalendar v.1.4.


person Jose Miguel Ledón    schedule 27.02.2014    source источник
comment
Пожалуйста, рассмотрите возможность добавления минимального, полного, проверенного и удобочитаемого примера, воссоздающего проблему на ваш вопрос. По вашему сообщению мы можем только строить догадки.   -  person dic19    schedule 27.02.2014
comment
Я думаю, что это проблема с выполнением проекта в netbeans, потому что, когда я открываю файл .jar, он работает без проблем.   -  person Jose Miguel Ledón    schedule 28.02.2014


Ответы (2)


Оба, JCalendar и панель JList, находятся в одной и той же более высокой JPanel (которая работает как контейнер)? Если вы находитесь в этой ситуации, решением будет повторная проверка контейнера после отображения текущей видимой панели JPanel.

Смотрите это так:

Первый:

  A JCalendar in a first JPanel : JPanelCalendar
  A JList in a second JPanel    : JPanelList
  Both in a JPanel              : JPanelConatainer

Ты должен сделать:

  JPanelContainer.revalidate();

Во-вторых:

Убедитесь, что вы делаете,

    JPanelCalendar.setVisible(false);

Когда вы хотите показать JPanelList и наоборот.

В третьих:

Возможно, ваша проблема в том, что JPanelCalendar не является непрозрачным, чтобы правильно скрыть второй,

    JPanelCalendar.setOpaque(true);

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

person Lionnel Afangbedjee    schedule 27.02.2014
comment
у меня есть 2 большие панели, jPanelLeft, jPanelRight, jPanelLeft: jCalendar и другие вещи jPanelRight: Jlist и еще одна jpanel, но я не содержал для обеих панелей. и это происходит, когда я провожу мышью над выпадающим списком месяца - person Jose Miguel Ledón; 27.02.2014
comment
Можете ли вы вставить код о том, что вы действительно делаете в коде, когда вы нажимаете на элемент JList? - person Lionnel Afangbedjee; 27.02.2014

Просто у меня такой же баг.

Это происходит только с Nimbus L&F и только с JMountChooser.

Решение действительно простое: правая кнопка на JMountChooser -> Свойства -> убрать опцию "Непрозрачный".

Только что проверил - работает!

person Eugene Shamkin    schedule 03.03.2017