Чтобы добавить события, мы могли бы используйте это простое 1-е решение :
function AddEvent(html_element, event_name, event_function)
{
if(html_element.attachEvent) //Internet Explorer
html_element.attachEvent("on" + event_name, function() {event_function.call(html_element);});
else if(html_element.addEventListener) //Firefox & company
html_element.addEventListener(event_name, event_function, false); //don't need the 'call' trick because in FF everything already works in the right way
}
или это 2-е решение (которое добавляет встроенные события):
function AddEvent(html_element, event_name, event_function)
{
var old_event = html_element['on' + event_name];
if(typeof old_event !== 'function')
html_element['on' + event_name] = function() { event_function.call(html_element); };
else
html_element['on' + event_name] = function() { old_event(); event_function.call(html_element); };
}
Это оба кроссбраузера и могут быть используется таким образом: Мне нужно иметь фоновое изображение в моем java-приложении и при каком-то событии создать другую графику поверх этого изображения. Я думал, что воспользуюсь JPanel для рисования фонового изображения ...
Короче говоря, мне нужно иметь фоновое изображение в моем java-приложении, и при каком-то событии создать другую графику поверх этого изображения.
Я думал, что буду использовать JPanel, чтобы нарисовать фоновое изображение, добавить его в мой JFrame в начале программы, а затем добавить другие JPanel поверх этого при определенных событиях. Проблема в том, что Swing дает JPanels, добавленным первым, наивысший индекс Z, поэтому то, что должно быть моим фоном, отображается поверх всего.
Есть ли способ контролировать Z-индекс / порядок JPanel, или я ошибаюсь?