Mit Netbean die Desktop-Anwendung ist der status bar
Ich würde gerne wissen, einen Weg, um tatsächlich machen die status bar, die von netbeans beim erstellen einer desktop-Anwendung zu arbeiten, aber ich weiß nicht wirklich verstehen, wie.
Bin ich mit dem code unten kann ja jeder verstehen was ich meine und wo es zu finden ist in netbeans.
//status bar initialization - message timeout, idle icon and busy animation, etc
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger(
"StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout,
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate = resourceMap.getInteger(
"StatusBar.busyAnimationRate");
for (int i = 0; i < busyIcons.length; i++)
{
busyIcons[i] = resourceMap.getIcon(
"StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate,
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
//connecting action tasks to status bar via TaskMonitor
TaskMonitor taskMonitor = new TaskMonitor(
getApplication().getContext());
taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener()
{
@Override
public void propertyChange(
java.beans.PropertyChangeEvent evt)
{
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName))
{
if (!busyIconTimer.isRunning())
{
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
} else if ("done".equals(propertyName))
{
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
} else if ("message".equals(propertyName))
{
String text = (String) (evt.getNewValue());
statusMessageLabel.setText(
(text == null) ? "" : text);
messageTimer.restart();
} else if ("progress".equals(propertyName))
{
int value = (Integer) (evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});
Verstehe ich, dass die ir hat wahrscheinlich zu tun mit der TaskMonitor
aber ich kann es nicht. 🙁
- Ich sah die Umsetzung von NetBeans' statusPanel einmal (wie genau das, was Sie sich beziehen), aber ich kann nicht scheinen, laden Sie die Vorlage innerhalb von NetBeans. Würden Sie bitte sagen Sie mir, laden Sie diese Vorlage?? Danke!
InformationsquelleAutor kxk | 2010-06-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist einer jener unangemessen komplizierte Dinge zu tun, in Java. Aber es ist machbar. Die NetBeans-code erwartet, dass Sie, um Ihre ausführbaren code in eine Aufgabe, die an der TaskMonitor, und dann wird es funktionieren. Hier ist das Beispiel, das für mich gearbeitet:
Wenn Sie nur wollen, zu aktualisieren, wird der text in die Statuszeile, verwenden Sie:
Wenn Sie möchten, um eine benutzerdefinierte Komponente (wie in deinem Beispiel), müssen Sie eine neue Klasse erstellen. Es wird automatisch selbst registrieren: