StartUp bzw. Splashscreen?

Status
Nicht offen für weitere Antworten.

friedolin

Mitglied
Hallo,

ich habe kleine Anwendung geschreiben,
die zuerst einen Frame und dann ein window
öffnet.

Das Window soll eine art startUp bzw. Splashscreen
darstellen um copyright Hinweise, Greetings etc. darzustellen.
Mit einem Mouseklick verschwindet es [setVisible(false)]
Und das dahinliegende Fenster (der Frame) soll weitergenutzt
werden, nur leider kann ich denn Inhalt des Frames erst sehen,
wenn ich den Frame angefasst habe und die größe minimal ändere.
Kann mir da jmd helfen?

Und ganz allgemein, würdet ihr den Splashscreen auch so realisieren?
Am liebsten hätte ich, dass der nach einigen Sekunden von selbst verschwindet und dass das Frame
vor dem verschwinden des Screen gar nicht angewählt werden kann bzw. in den vordergrund geholt werden kann. Kann mir da evtl. jmd bei helfen?

Hier der Code der 3 Klassen, allgemeine Hinweise zum ProgrammierStil
sind natürlich willkommen...! Gibts für Java irgendwo n HTML-Code Konverter?
Habe keinen gefunden, würd dann nochmal posten...

StartApp.java:
Code:
public class startApp{

public static void main(String[] args){

FrameGui f = new FrameGui();
WindowGui w = new WindowGui();
}
}

FrameGui.java:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class FrameGui extends JFrame implements ActionListener{

JPanel links = new JPanel();
JPanel rechts = new JPanel();
JPanel unten = new JPanel();
JButton Bberechnen;

public FrameGui(){

super("BMI Berechnung");
int sw = getToolkit().getScreenSize().width;
int sh = getToolkit().getScreenSize().height;
setSize(600,600);
setLocation(sw/2-300,sh/2-300);
setVisible(true);
requestFocus();

addWindowListener(new WindowAdapter1());

getContentPane().setLayout(new GridLayout());

//getContentPane().add("West",links);
//getContentPane().add("East",rechts);
//getContentPane().add("South",unten);

Bberechnen = new JButton("berechnen");

unten.add(Bberechnen);
Bberechnen.addActionListener(this);
links.setBackground(Color.black);
rechts.setBackground(Color.white);
}

public void actionPerformed(ActionEvent ae){

Object quelle = ae.getSource();

if(quelle == Bberechnen){
rechts.setBackground(Color.black);
links.setBackground(Color.white);
}
}

static class WindowAdapter1 extends WindowAdapter{
public void WindowClosing (WindowEvent we){
System.exit(0);
}
}

}// Ende Klasse FrameGui
WindowGui.java:
Code:
import java.awt.*;
import java.awt.event.*;

public class WindowGui extends Window{
/*
Kann man bei Window keine Panel verwenden??
Panel oben = new Panel();
Panel unten = new Panel();
*/
public WindowGui(){

super(new Frame());

int sw = getToolkit().getScreenSize().width;
int sh = getToolkit().getScreenSize().height;

setSize(300,219);
setLocation(sw/2-150,sh/2-100);
setVisible(true);

addMouseListener(new MouseAdapter1());
/*
setLayout(new BorderLayout());

add(oben,BorderLayout.NORTH);
add(unten,BorderLayout.SOUTH);

oben.setBackground(Color.red);
unten.setBackground(Color.blue);
*/
}

public class MouseAdapter1 extends MouseAdapter{
public void mousePressed(MouseEvent ke){
System.out.println("MousePressed");
setVisible(false);
}
}

public void paint(Graphics g){
//Image bild = getToolkit().getImage("BmiStart.jpg");
//g.drawImage(bild,0,0,this);
g.setColor(Color.blue);
g.drawString("copyright etc...",30,50);
}

}
 

foobar

Top Contributor
Du darfst den Frame erst anzeigen, wenn alle Widgets hinzugefügt wurden,
Code:
public FrameGui(){

super("BMI Berechnung");
int sw = getToolkit().getScreenSize().width;
int sh = getToolkit().getScreenSize().height;
setSize(600,600);
setLocation(sw/2-300,sh/2-300);
requestFocus();

addWindowListener(new WindowAdapter1());

getContentPane().setLayout(new GridLayout());

//getContentPane().add("West",links);
//getContentPane().add("East",rechts);
//getContentPane().add("South",unten);

Bberechnen = new JButton("berechnen");

unten.add(Bberechnen);
Bberechnen.addActionListener(this);
links.setBackground(Color.black);
rechts.setBackground(Color.white);

setVisible(true);
}
 

friedolin

Mitglied
@thE_29 sorry und danke
@foobar danke

Damit komm ich weiter.
Vielleicht sonst noch allgemeine Hinweise auf den Programmierstil oder ist das schon ok so?

Eine Frage noch: Kann man ein Window mit Panels belegen? Hat bei mir nich so geklappt....
 

AlArenal

Top Contributor
Also ich programmiere auf Englisch, lediglich die Kommentare sind bei mir derzeit in Deutsch.

Du kannst z.B. einem JFrame ein Panel hin zufügen mit dessen Methode getContentPane().add(panel). Die Methode add() erwartet ein Objekt vom Typ Component.
 

thE_29

Top Contributor
zu Programmierstil:

Es ist gut die Funktionen englisch zu halten
Es ist noch besser englisch zu kommentieren (vorausgesetzt es ist opensource oder Fa. für zuHause isses net notwendig, aja und man sollte englisch können ;)) - achja und vielleicht sogar in Sätzen kommentieren!

Block Einrückungen sollte man immer machen
Funktionen sollten nie wirklich lang sein

Code was mehrmals vorkommt und sich nur 1 oder 2 Var. ändern, können schon wieder eine Funktion bilden
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben