в моем проекте есть класс MessageUtil, в котором есть методы для отображения сообщений, я пытаюсь сделать тексты моих Jlabels красными, используя аспект J, без использования аспекта J достаточно добавить «цикл for» к одному из методов, которые делают multiLabel текстовое сообщение:
public static JLabel[] createMultiLabel(String msg) {
JLabel[] messages = null;
if (msg.contains("\n")) {
messages = createMultiLabelBySlashN(msg);
} else {
messages = createMultiLabelByPixel(msg);
}
//this for loop makes the text red
for (int i = 0; i < messages.length; i++) {
messages[i].setForeground(Color.RED);
}
return messages;
}
Два метода createMultiLabelByPixel(msg) и createMultiLabelBySlashN(msg) имеют следующую форму:
private static JLabel[] createMultiLabelBySlashN(String msg) {
// the code here
}
Я хочу использовать аспект J, чтобы сделать JLabels красным, не используя цикл for в теле метода createMultiLabel, я понятия не имею, как это сделать, я пытаюсь создать класс, содержащий аннотацию aspecJ с помощью pointCut ниже, чтобы сделать сообщения массива красными перед отправкой сообщений в createMultiLabelBySlashN() и createMultiLabelByPixel() в качестве их параметра, но я не знаю, правильно ли это или как определить сообщения JLabel [] из метода createMultiLabel в моем аспектеJ class, чтобы сделать его красным, используя тот же цикл for, и отправить результат String в createMultiLabelBySlashN.
@Pointcut ("execution(public static JLabel[] mehad.util.MessageUtil.createMultiLabelBySlashN(..)) || execution(public static JLabel[] mehad.util.MessageUtil.createMultiLabelByPixel(..)" )
даже когда я вызываю pointCut, кажется, что в моем коде есть ошибки, которые говорят:
no match for this type name: JLabel