Java JPanel перерисовка вопросов

У меня есть приложение Java swing с панелью, которая содержит три JComboBoxe s, которые не рисуют должным образом.
Поля combox просто отображаются в виде стрелки вниз с правой стороны, но без метки текущего выбранного значения.
Поля будут перерисованы правильно, если размер окна будет увеличен или уменьшен хотя бы на один пиксель.

Все мои гуглы указали на вызов revalidate() на JPanel , чтобы исправить это, но это не сработало для меня.
Вызов updateUI() на JPanel изменил его от Всегда отображения неправильно на отображение неправильно половину времени.

Кто-нибудь еще видел это и нашел другой способ заставить перерисовывать поля со списком?

java   swing   jpanel    

441   1   11:52, 2nd August, 2020


Когда утверждения должны оставаться в производственном коде?

В comp.lang.c++.moderated идет дискуссия о том, следует ли сохранять утверждения, которые в C++ существуют только в отладочных сборках по умолчанию, в производственном коде или нет.

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

Под утверждением я подразумеваю:

  • Проверка во время выполнения, которая проверяет условие, которое, будучи ложным, обнаруживает ошибку в программном обеспечении.
  • Механизм, с помощью которого программа останавливается (возможно, после действительно минимальной очистки).

Я не обязательно говорю о C или C++.

Мое собственное мнение заключается в том, что если вы программист, но не владеете данными (что имеет место с большинством коммерческих настольных приложений), вы должны держать их включенными, потому что неудачная проверка показывает ошибку, и вы не должны продолжать работу с ошибкой, рискуя повредить данные пользователя. Это заставляет вас сильно тестировать перед отправкой и делает ошибки более заметными, что облегчает их обнаружение и исправление.

Что ваш opinion/experience?

Овации,

Карл

Смотрите соответствующий вопрос здесь


Ответы и обновления

Привет Грэм,

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

Вот почему я предпочитаю слово "bug", когда говорю об утверждениях. Это делает вещи намного яснее. Для меня слово "error" слишком расплывчато. Отсутствующий файл-это ошибка, а не ошибка, и программа должна с ней разобраться. Попытка разыменовать указатель null-это ошибка, и программа должна признать, что что-то пахнет плохим сыром.

Следовательно, вы должны проверить указатель с утверждением, но наличие файла с обычным кодом обработки ошибок.


Небольшое отклонение от темы, но важный момент в обсуждении.

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

Карл


Томас,

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

Допустим, ваш пользовательский распределитель памяти ошибается и обнуляет часть памяти, которая все еще используется каким-то другим объектом. Мне случается обнулить указатель, который этот объект разыменовывает регулярно, и один из инвариантов заключается в том, что этот указатель никогда не является null, и у вас есть пара утверждений, чтобы убедиться, что он остается таким же. Что делать, если указатель вдруг окажется null? Вы просто стоите вокруг него, надеясь, что он работает?

Помните, что мы говорим о коде продукта здесь, поэтому нет никакого взлома отладчика и проверки локального состояния. Это настоящая ошибка на компьютере пользователя.

Карл

assert    

379   16   11:45, 2nd August, 2020


Java SWIFT библиотека

Я ищу библиотеку Java для SWIFT сообщений. Я хочу

  • разбор сообщений SWIFT в объектную модель
  • проверка SWIFT сообщений (включая SWIFT правила проверки сети)
  • построение / изменение сообщений SWIFT с помощью объектной модели

Теоретически, мне нужно поддерживать все типы сообщений SWIFT. Но на данный момент мне нужны MT103+, MT199, MT502, MT509, MT515 и MT535.

До сих пор я просмотрел две библиотеки

Обе библиотеки позволяют выполнять задачи, упомянутые выше, но в обоих случаях я не очень доволен.

AnaSys использует внутреннее представление XML для всех сообщений SWIFT, которые вам необходимо знать, чтобы получить доступ к полям сообщения. И вам нужно оперировать на DOM представления XML, нет никакого способа сказать "получить содержимое поля '50K' сообщения SWIFT".

И библиотека Datamation, кажется, имеет более приятный API, но не находит всех ошибок.

Итак, кто-нибудь знает другие библиотеки SWIFT для использования?

java   swift-mt    

697   4   11:44, 2nd August, 2020


Как бы вы обрабатывали ошибки при использовании jQuery.ajax()?

При использовании jQuery с ajax способ представить данные форме, что является лучшим способом, чтобы обрабатывать ошибки? Это пример того, как может выглядеть вызов:

$.ajax({
    url: "userCreation.ashx",
    data: { u:userName, p:password, e:email },
    type: "POST",
    beforeSend: function(){disableSubmitButton();},
    complete: function(){enableSubmitButton();},
    error: function(xhr, statusText, errorThrown){
            // Work out what the error was and display the appropriate message
        },
    success: function(data){
            displayUserCreatedMessage();
            refreshUserList();
        }
});

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

Моя проблема, похоже, заключается в том, что, бросая исключение, ashx вызывает неопределенность statusText и errorThrown .

Я могу добраться до XMLHttpRequest.responseText , который содержит HTML, который составляет стандартную страницу ошибки .net.

Я нахожу заголовок страницы в responseText и использую заголовок, чтобы выяснить, какая ошибка была выброшена. Хотя у меня есть подозрение, что это развалится, когда я включу пользовательские страницы обработки ошибок.

Должен ли я выбрасывать ошибки в ashx, или я должен возвращать код состояния как часть данных, возвращенных вызовом userCreation.ashx , а затем использовать это, чтобы решить, какие действия предпринять?
Как вы справляетесь с этими ситуациями?

asp.net   jquery   ajax    

394   3   11:42, 2nd August, 2020


Красивая печать XML файлов на Emacs

Я использую emacs для редактирования моих xml файлов (nxml-mode), и файлы были сгенерированы машиной не имеют никакого красивого форматирования тегов.

Я искал довольно красивую печать всего файла с отступом и сохранением его, но не смог найти автоматический способ.

Есть ли какой-то выход? Или хотя бы какой-нибудь редактор на linux, который может это сделать.

xml   emacs   editor    

536   15   11:40, 2nd August, 2020


Как избежать OutOfMemoryError при использовании Bytebuffers и NIO?

Я использую ByteBuffers и FileChannels для записи двоичных данных в файл. Когда я делаю это для больших файлов или последовательно для нескольких файлов, я получаю исключение OutOfMemoryError . Я где-то читал, что использование Bytebuffers с NIO нарушено и его следует избегать. Кто-нибудь из вас уже сталкивался с подобной проблемой и нашел решение для эффективного сохранения больших объемов двоичных данных в файле java?

Является ли вариант jvm -XX:MaxDirectMemorySize правильным решением?

java   nio   bytebuffer   filechannel    

414   6   11:38, 2nd August, 2020


Django or redsolutions?

Только начал изучать django — прочитал и сделал проектик djbook.ru

Установил джанго на апач через mod_python, т.е. чуть чуть ознакомился.

Вопрос такой лучше сначала сделать сайт на django или сразу пробовать ковырять redsolutions cms (написана на django)?

Django    

418   4   11:32, 2nd August, 2020


Задержка в ActionScript 3 без таймера?

Задача: необходимо реализовать задержку в N секунд в ActionScript 3

Проблема: в этот момент меняется системное время (сдвигается на несколько часов назад или вперед) и таймер не вызывает эвент в нужное время.

Как реализовать?

ActionScript    

410   3   11:23, 2nd August, 2020


Как скрыть статусбар в vlc плеере?

Очень мозолит глаза и совершенно не нужен

VLC   Adobe   Flash    

365   1   11:20, 2nd August, 2020


Как получить файл с сервера через SFTP?

Я пытаюсь получить файл с сервера, используя SFTP (в отличие от FTPS), используя Java. Как я могу это сделать?

java   ftp   sftp   security    

596   16   11:02, 2nd August, 2020