Я пытался решить это в течение последних 2 дней без везения. Я просматривал страницы на страницах решений, которые выглядят правильно, но либо моя реализация неверна, либо они не являются правильными решениями.Платформа NetBeans: панель инструментов и действия
Я создал новую панель инструментов с именем AddEditDelete. Затем я продолжил добавлять действия к нему:
Вот AddAction.java
@ActionID(category = "Edit",
id = "com.waudware.toolbar.AddAction")
@ActionRegistration(iconBase = "com/demo/toolbar/icons/add.png",
displayName = "#CTL_AddAction")
@ActionReferences({
@ActionReference(path = "Toolbars/AddEditDelete", position = 1),
@ActionReference(path = "Shortcuts", name = "D-A")
})
@Messages("CTL_AddAction=Add")
public final class AddAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
//TODO: Code here
}
}
Я также EditAction.java и DeleteAction.java - все они были созданы как «Всегда включено».
Что я пытался сделать, так это: когда вы нажимаете на кнопку «Добавить» на панели инструментов, она будет выполнять код в AddAction.java и отключить EditAction.java (серая кнопки действий, чтобы они были незаметными).
После 2 дней попытки выяснить, как это сделать, я полностью потерял и почти уверен, что это невозможно. До сих пор форумы NetBeans dev были бесполезны.
Edit: Мой вопрос достаточно специфичен и просто: Что было бы правильным (даже если это плохая практика) подход к отключению EditAction.java от AddAction.java -Так далеко я попытался с помощью поиска, CookieSet , прямые вызовы, Действие конкретизации, и единственное, что я получил, что было удаленно, что я хотел это
ToolbarPool.getDefault().findToolbar("AddEditDelete").setEnabled(false);
, который скрывает всю панель, а не отдельные действия (иконки) на нем.
@AndrewThompson Мой вопрос достаточно специфичен и просто: Что бы правильный подход к отключению EditAction.java от AddAction.java -Так далеко я попытался с помощью поиска, CookieSet, прямые вызовы, инстанцирование действий, и Единственное, что у меня получилось, это то, что я хотел, это ToolbarPool.getDefault(). findToolbar («AddEditDelete»). setEnabled (false) - который скрывает всю панель инструментов. –