Hallo allerseits,
wie in der Überschrift erwähnt bin ich C++ Umsteiger und habe hier und da ein paar kleine Verständnis Probleme.
Kurz zur Erklärung, ich muss für ein Projekt zu Beginn meines Programms einen Filesearch ausführen...
Diesen habe ich erst in C++ mit WinApi, dann weil es später Betriebssystem unabhängig sein musste in C++ mit Boost-Libs und jetzt letzten Endes in Java programmiert.
Nun hätte ich gerne einen SplashScreen wärend der Dateisuche eingeblendet, da wenn die Datei blöd liegt die Suche doch etwas dauern kann.
Mit dem Tutorial: "How to Create a SplashScreen" wurde mir glücklicherweise etwas Licht ins Dunkle gebracht, aber mir fehlen eben hier und da noch ein paar Java Basics um komplett durchzusteigen. :roll:
Ich poste hier jetzt mal den Demo Code von der Seite zerstückelt und schreibe dazu was ich begreife und was nicht.
Bitte korrigiert mich wenn irgendwas nicht stimmt bzw klärt mich auf wenn ich was nich richtig checke!
Hier wird auf dem bestehenden Bild eine neue Grafik gezeichnet, ohne das eigentlich Bild zu verändern.
Allerdings erst weiter unten mit update() sichtbar gemacht.
Was genau macht dieses super("...")? Das kapier ich leider nicht :cry:
Dann wird Größe, Border, Menu etc Eigentschaften für das Window gesetzt...
Dazu noch ein ActionListener der das Window schließt wenn ein neues Fenster (bzw die richtige Anwendung) aufgeht??
Hier wird der SplashScreen dann geholt und angezeigt...
Leider bekomme ich hier wenn ich compile nur "return null", zum Kompilieren muss ich später aber noch weitere Fragen stellen.
Was das hier macht versteh ich leider gerade Überhaupt nicht
Hier wird das oben genannte Update ausgeführt, müsste der Ladebalken sein...
Sleep, close , toFront etc müssten mir klar sein.
Was passiert hier? Oder wird hier der Splashscreen geschlossen wenn die Hauptanwendung aufgeht?
Das hier is mir relativ klar alles, das übliche Fenster wird erstellt...
Wie sollte ich das jetzt kompilieren? Ich bin den Anweisung mit der commandline mal gefolgt, hab da aber nur Fehlermeldungen bekommen.
Weiterhin weiss ich nicht genau wie ich den Splashscreen mit meiner bereits erstellten Filesuche verknüpfen soll!
Da wäre ich über Hilfe auch sehr Dankbar!
Allgemein schonmal Danke an jeden der sich diesen langen Text angetan hat!
mfg
geneticZ
wie in der Überschrift erwähnt bin ich C++ Umsteiger und habe hier und da ein paar kleine Verständnis Probleme.
Kurz zur Erklärung, ich muss für ein Projekt zu Beginn meines Programms einen Filesearch ausführen...
Diesen habe ich erst in C++ mit WinApi, dann weil es später Betriebssystem unabhängig sein musste in C++ mit Boost-Libs und jetzt letzten Endes in Java programmiert.
Nun hätte ich gerne einen SplashScreen wärend der Dateisuche eingeblendet, da wenn die Datei blöd liegt die Suche doch etwas dauern kann.
Mit dem Tutorial: "How to Create a SplashScreen" wurde mir glücklicherweise etwas Licht ins Dunkle gebracht, aber mir fehlen eben hier und da noch ein paar Java Basics um komplett durchzusteigen. :roll:
Ich poste hier jetzt mal den Demo Code von der Seite zerstückelt und schreibe dazu was ich begreife und was nicht.
Bitte korrigiert mich wenn irgendwas nicht stimmt bzw klärt mich auf wenn ich was nich richtig checke!
Code:
import java.awt.*;
import java.awt.event.*;
public class SplashDemo extends Frame implements ActionListener {
static void renderSplashFrame(Graphics2D g, int frame) {
final String[] comps = {"foo", "bar", "baz"};
g.setComposite(AlphaComposite.Clear);
g.fillRect(120,140,200,40);
g.setPaintMode();
g.setColor(Color.BLACK);
g.drawString("Loading "+comps[(frame/5)%3]+"...", 120, 150);
}
Allerdings erst weiter unten mit update() sichtbar gemacht.
Code:
public SplashDemo() {
super("SplashScreen demo");
setSize(300, 200);
setLayout(new BorderLayout());
Menu m1 = new Menu("File");
MenuItem mi1 = new MenuItem("Exit");
m1.add(mi1);
mi1.addActionListener(this);
this.addWindowListener(closeWindow);
MenuBar mb = new MenuBar();
setMenuBar(mb);
mb.add(m1);
Dann wird Größe, Border, Menu etc Eigentschaften für das Window gesetzt...
Dazu noch ein ActionListener der das Window schließt wenn ein neues Fenster (bzw die richtige Anwendung) aufgeht??
Code:
final SplashScreen splash = SplashScreen.getSplashScreen();
if (splash == null) {
System.out.println("SplashScreen.getSplashScreen() returned null");
return;
}
Leider bekomme ich hier wenn ich compile nur "return null", zum Kompilieren muss ich später aber noch weitere Fragen stellen.
Code:
Graphics2D g = splash.createGraphics();
if (g == null) {
System.out.println("g is null");
return;
}
Code:
for(int i=0; i<100; i++) {
renderSplashFrame(g, i);
splash.update();
try {
Thread.sleep(90);
}
catch(InterruptedException e) {
}
}
splash.close();
setVisible(true);
toFront();
}
Sleep, close , toFront etc müssten mir klar sein.
Code:
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
Code:
private static WindowListener closeWindow = new WindowAdapter(){
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
}
};
public static void main (String args[]) {
SplashDemo test = new SplashDemo();
}
}
Wie sollte ich das jetzt kompilieren? Ich bin den Anweisung mit der commandline mal gefolgt, hab da aber nur Fehlermeldungen bekommen.
Weiterhin weiss ich nicht genau wie ich den Splashscreen mit meiner bereits erstellten Filesuche verknüpfen soll!
Da wäre ich über Hilfe auch sehr Dankbar!
Allgemein schonmal Danke an jeden der sich diesen langen Text angetan hat!
mfg
geneticZ