C99 N1256 стандартная черновик
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
6.5.3.4 Оператор sizeof :
3 При применении к операнду, который имеет структуру или тип объединения, результатом является общее количество байтов в таких объект, включая внутреннюю и конечную прокладку.
blockquote>6.7.2.1 Спецификаторы структуры и объединения :
13 ... Там может быть неназванным дополнением внутри объекта структуры, но не в начале.
blockquote>и:
15 В конце структуры может быть неназванное дополнение или объединение.
blockquote>Новая функция члена C99 с гибким элементом массива (
struct S {int is[];};
) также может влиять на заполнение:16 As в специальном случае последний элемент структуры с более чем одним именованным элементом может иметь неполный тип массива; это называется гибким элементом массива. В большинстве ситуаций гибкий элемент массива игнорируется. В частности, размер структуры выглядит так, как если бы гибкий элемент массива был пропущен, за исключением того, что он мог иметь более длинное дополнение, чем подразумевалось.
blockquote>Приложение J Проблемы с переносимостью повторяет:
Следующие неуказаны: ...
blockquote>
- Значение байтов заполнения при хранении значений в структурах или объединениях (6.2.6.1)
C ++ 11 Стандартная черновая версия N3337
http://www.open-std.org/jtc1/sc22/wg21/ docs / papers / 2012 / n3337.pdf
5.3.3 Размер :
2 При применении к классу результатом является количество байтов в объекте этого класса, включая любое дополнение, необходимое для размещения объектов этого типа в массиве.
blockquote>9.2 Члены класса :
Указатель на объект структуры стандартного макета, соответствующим образом преобразованный с использованием reinterpret_cast, указывает на его начальный член (или если этот элемент является битовым полем, то t o единица, в которой он находится) и наоборот. [Примечание. Таким образом, в рамках объекта структуры стандартного макета может быть указано неназванное заполнение, но не в его начале, по мере необходимости, для достижения соответствующего выравнивания. - end note]
blockquote>Я знаю достаточно C ++, чтобы понять примечание: -)
Можно сделать исходную форму (которым я предполагаю, что Вы имеете в виду JFrame
) будьте своим собственным подклассом JFrame
, и помещенная стандартная функциональность в ее конструкторе, таком как:
this.setIconImage(STANDARD_ICON);
Можно связать другой стандартный материал в здесь также, такой как запоминание метрик окна кадра как пользовательская настройка, управление областями всплеска, и т.д.
Любые новые кадры, порожденные этим, также были бы экземплярами этого JFrame
подкласс. Единственная вещь, которую необходимо помнить, состоит в том, чтобы инстанцировать подкласса, вместо JFrame
. Я не думаю, что существует любая замена для того, чтобы не забывать сделать это, но по крайней мере теперь это - вопрос запоминания подкласса вместо a setIconImage
звоните (среди возможно других функций).
Расширитесь класс JDialog (например, называют это MyDialog), и установите значок в конструкторе. Затем все диалоговые окна должны расширить Вашу реализацию (MyDialog).
Кроме того, если Вы будете иметь одно "основное" окно и установите его значок правильно, пока Вы используете то главное окно в качестве "родителя" для любых Диалоговых классов, они наследуют значок. Любым новым Кадрам нужно было установить значок на них, все же.
поскольку сказанный Paul/Andreas, разделяя JFrame на подклассы будет Вашим лучшим выбором.
Существует иначе, но его больше "взлома" затем реальная фиксация....
Если Вы распределяете JRE со своим Приложением, Вы могли бы заменить ресурс значка кофейной чашки в Java exe/dll/rt.jar везде, где это с Вашим собственным значком. Это не могло бы быть очень законно, но это - возможность...