Googlehupf
Erfahrenes Mitglied
Hallo zusammen!
Ich hab eine Frage zur Klasse JDialog. Also in meinen Fall wird in MainFrame.java(ist hier nicht aufgelistet, da nicht so wichtig) die Klasse AboutDialog instanziert. Und es wird dann Instanziert wenn ein Button gedrückt wird.
Application.java:
AboutDialog.java:
Bitte sagt was zu jeden meiner Kommentare dazu
.
Danke!
mfg
Ich hab eine Frage zur Klasse JDialog. Also in meinen Fall wird in MainFrame.java(ist hier nicht aufgelistet, da nicht so wichtig) die Klasse AboutDialog instanziert. Und es wird dann Instanziert wenn ein Button gedrückt wird.
Application.java:
Java:
package Reaktionstester;
import java.awt.*;
import javax.swing.*;
public class Application {
/**
* Construct and show the application.
*/
public Application() {
MainFrame frame = new MainFrame();
// Validate frames that have preset sizes
frame.validate();
// den folgenden code braucht man ja für das Fenster erstellen, warum brauche ich diesen beim Dialog nicht, das ist doch auch //ein Fenster eigentlich oder?
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
/**
* Application entry point.
*
* @param args String[]
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Application();
}
});
}
}
AboutDialog.java:
Java:
package Reaktionstester;
import java.awt.*;
import javax.swing.*;
public class AboutDialog extends JDialog {
Frame owner;
public AboutDialog(Frame owner, String title) {//von der MainFrame-klasse, wo ich AboutDialog instanziere übergebe ich ja //this, also: AboutDialog dialog = new AboutDialog(this,"title");n --> MainFrame ist ja ein Fenster, also "JFrame", warum übergibt //man this(also ein JFrame) in eine "Frame-Klasse" rein, also owner? Muss man da nicht JFrame schreiben?
super(owner, title, true); // das ist klar, generiert sozusagen einfach einen "Jdialog"
this.owner = owner; //hier halt zwischenspeichern, falls man owner außerhalb vom konstruktur mal braucht
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
dlgInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void dlgInit() throws Exception {
JPanel contentPane = (JPanel) getContentPane(); //diese Zeile verstehe ich nicht, was macht die bitte?
contentPane.setLayout(new BorderLayout());
setSize(new Dimension(350, 300));
Point parloc = owner.getLocation(); //owner ist in dem Fall ja das "Hauptfenster" und man bekommt die Location von //dem dann? oder wie geht das?
setLocation(parloc.x + 30, parloc.y + 30); //mh irgendwie habe ich die 2 Zeilen nicht ganz begriffen, ich weiß zwar das //sie den Dialog ca. in der linken ecke oben vom Hauptfenster einfügen, aber was hinter dem 2 zeilencode steckt habe ich keine /ahnung.
JPanel panel1 = new JPanel(new FlowLayout());
contentPane.add(panel1,BorderLayout.CENTER);
panel1.add(new JLabel("test"));
setVisible(true);//den dialog, sichtbar machen, würd ich mal sagen
}
}
Bitte sagt was zu jeden meiner Kommentare dazu

Danke!
mfg