JXFrame
Um das Beispiel nicht zu unübersichtlich zu machen, wird sich
hier auf die Darstellung der Einbindung einer Statusbar, einiger
JLabel und einer JProgressBar beschränkt.
Direkt in der
ersten Zeile von main()
fällt der
Konstruktoraufruf des Frames auf. Hier wird neben dem Frametitel ein
boolscher Wert mitgegeben, der, falls true
gesetzt, die
Anwendung beim Schließen des Frames selbsttätig beendet.
Die Standardeinstellung ist hier, wie bei JFrame
auch,
false
.
In der Folge wird auf den Frame ein Label
zentrisch gesetzt und die Statusbar vorbereitet: Nach der
Objektbildung werden zwei JLabel und eine JProgressBar erzeugt. Die
Komponenten werden auf die Statusbar gesetzt und in einem kleinen
Thread die Fortschrittsanzeige der Progressbar simuliert.
Die
Methode setStatusBar()
integriert die Bar am unteren
Rand des Frames.
Die Position eines JXFrame
kann
über die Enumeration JXFrame.StartPosition
bequem
reguliert werden. Hier kann zwischen einer manuellen
Positionseinstellung (JXFrame.StartPosition.Manual
),
der Bildschirmmitte (JXFrame.StartPosition.CenterInScreen
)
oder der Mitte der Elternkomponente (JXFrame.StartPosition.CenterInParent
) gewählt werden.
Wie üblich muss zum Schluss
die Größe des Frames bestimmt und dieser sichtbar gesetzt
werden.
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import org.jdesktop.swingx.JXFrame;
import org.jdesktop.swingx.JXStatusBar;
public class JXFrameBsp {
public static void main(String[] args) {
JXFrame frame = new JXFrame("JXFrame-Beispiel", true);
frame.add(new JLabel("JXFrame-Beispiel", JLabel.CENTER));
JXStatusBar statusBar = new JXStatusBar();
JLabel progressLabel = new JLabel("Progress");
final JLabel endLabel = new JLabel("");
final JProgressBar pb = new JProgressBar(0, 100);
progressLabel.setLabelFor(pb);
statusBar.add(progressLabel);
statusBar.add(pb);
statusBar.add(endLabel);
Thread t = new Thread(){
public void run(){
int i=0;
while (i<=100){
pb.setValue(++i);
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(pb.getMaximum() == i) endLabel.setText("feddisch!");
}
}
};
t.start();
frame.setStatusBar(statusBar);
frame.setStartPosition(JXFrame.StartPosition.CenterInScreen);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
1) JXFrame
gehört zur
SwingX-Bibliothek, die gesondert in den Classpath eingebunden werden
muss. Für weitere Informationen siehe SwingX.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.