java - NetBeans 平台和 StatusLineElementProvider

标签 java swing netbeans-7 statusbar netbeans-platform

我正在使用 NetBeans 平台 和 Java 开发应用程序。在应用程序的底部有一个 StatusDisplayer,它始终默认包含。我向这个 StatusDisplayer 添加了一个面板 (StatusBarJPanel)。这个 StatusBarJPanel 有两个图像图标,表示网络 Activity 。

我不知道如何隐藏(setVisible(false))在没有 Activity 时在运行时创建的这个面板上的这些图标...如何更新 StatusBarJPanel 上的两个图标。

以下是将我的 StatusBarJPanel 添加到 StatusDisplayer 的代码:

import java.awt.Component;
import gui.StatusBarJPanel;
import org.openide.awt.StatusLineElementProvider;
import org.openide.util.lookup.ServiceProvider;

@ServiceProvider(service = StatusLineElementProvider.class)

public class StatusBar implements StatusLineElementProvider {

    private StatusBarJPanel statusBarBottomJPanel = new StatusBarJPanel();

    @Override
    public Component getStatusLineElement() {
        return statusBarBottomJPanel;
    }
}

最佳答案

如果我没有正确理解您的要求,您应该能够执行以下操作:

Collection<? extends StatusLineElementProvider> all = 
    Lookup.getDefault().lookupAll(StatusLineElementProvider.class);
for (StatusLineElementProvider a : all) {
    if (a instanceof StatusBar) {
        StatusBarJPanel ele = (StatusBarJPanel ) ((StatusBar) a).getStatusLineElement();
        ele.doUpdate(); // or whatever method you need to call
    }
}

使用此技术将为您提供在启动时向状态行注册的相同 StatusLineElementProvider

关于java - NetBeans 平台和 StatusLineElementProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460411/

相关文章:

java - 通用对象的操作

java - TypedQuery<T>.getSingleResult 返回类型为 Class 而不是类型 T 的对象

java - 我可以使用 .jasper 文件吗?

java - 我不知道如何让我的 JCombobox 将其数据插入我的数据库

javascript - 绘制半规/速度表(需要 JavaScript Canvas 或 Java Swing 示例)

maven - Netbeans 7.3 如何设置 MAVEN_OPTS,例如最大容量

jvm - 减小 JRE 的大小

java - Teradata 和 Apache Kafka 使用 Kafka 连接

java - 在 JTable 中制作 3 色标热图