Хитрость заключается в том, как получить вид среды экрана от «Запуск сценария» действия. Экран, который может содержать компоненты формы, представляет собой экземпляр com.install4j.api.screens.FormPanelContainer
, и этот класс предоставляет доступ к com.install4j.api.formcomponents.FormEnvironment
.
В "Выполнить скрипт" действия, вы можете сделать это:
import java.awt.EventQueue;
import java.awt.Color;
EventQueue.invokeLater(new Runnable() {
public void run() {
FormEnvironment formEnvironment =
((FormPanelContainer)context.getScreenById("screenId")).getFormEnvironment();
JComponent label = (JComponent)formEnvironment.getFormComponentById("componentId").
getConfigurationObject();
label.setForeground(Color.MAGENTA);
}
});
return true;
с соответствующими значениями для "screenId" и "ComponentID".
для более многократного использования раствора добавляют
import java.awt.EventQueue;
import java.awt.Color;
public static void changeColor(final String screenId, final String componentId,
final Color color, final Context context)
{
EventQueue.invokeLater(new Runnable() {
public void run() {
FormEnvironment formEnvironment =
((FormPanelContainer)context.getScreenById(screenId)).getFormEnvironment();
JComponent label = (JComponent)formEnvironment.getFormComponentById(componentId).
getConfigurationObject();
label.setForeground(color);
}
});
}
статическому код на "Installer-> Пользовательский код & ресурсов" шаг (install4j 6+) и вызовите
changeColor("screenId", "componentId", java.awt.Color.GREEN, context);
в вашем " Запустить сценарий ".
Для установки значка, вы должны определить свойство «Icon» на один из компонентов этикетки и использовать свойство «Initialization сценарий», чтобы сохранить его в контексте и удалить его из метки:
context.setVariable("checkIcon", configurationObject.getIcon());
configurationObject.setIcon(null);
Затем после вызова label.setForeground();
в указанных выше фрагментов кода, вы можете позвонить
label.setIcon((Icon)context.getVariable("checkIcon"));
Интересный вопрос! –