Hallo,
ich habe folgendes Problemchen:
Ich möchte Dialogfenster relativ zum Elternfenster zentrieren:
So
geht es eben nicht. Wie kann ich die größe des Dialogfensters auslesen. Festlegen mit setSize kann ich sie jedenfalls nicht.
Mein zweites Problem ist, dass ich bei einem windowsbenutzenden Freund festgestellt habe, das mein Java-Programm die Windows-Design-Farben annimmt. Das was ich eben auch über Java 6 gehört habe. Unter Ubuntu (GNOME/GTK) geht das aber nicht. Muss ich als Programmierer nacharbeiten oder fehlt mir ein Javazusatzpaket?
Mfg
DeeDee0815
ich habe folgendes Problemchen:
Ich möchte Dialogfenster relativ zum Elternfenster zentrieren:
Code:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
class ModalDialog
extends Dialog
implements ActionListener
{
private static final long serialVersionUID = 1L;
String result;
public static String OKDialog(Frame owner, String msg)
{
ModalDialog dlg;
dlg = new ModalDialog(owner, "Hinweis", msg, "OK");
dlg.setVisible(true);
return dlg.getResult();
}
public static String YesNoDialog(Frame owner, String msg)
{
ModalDialog dlg;
dlg = new ModalDialog(owner, "Frage", msg, "Ja,Nein");
dlg.setVisible(true);
return dlg.getResult();
}
public static String YesNoCancelDialog(Frame owner, String msg)
{
ModalDialog dlg;
dlg = new ModalDialog(owner, "Frage", msg, "Ja,Nein,Abbrechen");
dlg.setVisible(true);
return dlg.getResult();
}
public ModalDialog(Frame owner, String title, String msg, String buttons)
{
super(owner, title, true);
setLayout(new BorderLayout());
setResizable(false);
Point parloc = owner.getLocation();
setLocation(parloc.x + (290-(getWidth()/2)), parloc.y + 30);
add(new Label(msg), BorderLayout.CENTER);
Panel panel = new Panel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
StringTokenizer strtok = new StringTokenizer(buttons, ",");
while (strtok.hasMoreTokens()) {
Button button = new Button(strtok.nextToken());
button.addActionListener(this);
panel.add(button);
}
add(panel, BorderLayout.SOUTH);
pack();
}
public void actionPerformed(ActionEvent event)
{
result = event.getActionCommand();
setVisible(false);
dispose();
}
public String getResult()
{
return result;
}
}
So
Code:
Point parloc = owner.getLocation();
setLocation(parloc.x + (290-(getWidth()/2)), parloc.y + 30);
geht es eben nicht. Wie kann ich die größe des Dialogfensters auslesen. Festlegen mit setSize kann ich sie jedenfalls nicht.
Mein zweites Problem ist, dass ich bei einem windowsbenutzenden Freund festgestellt habe, das mein Java-Programm die Windows-Design-Farben annimmt. Das was ich eben auch über Java 6 gehört habe. Unter Ubuntu (GNOME/GTK) geht das aber nicht. Muss ich als Programmierer nacharbeiten oder fehlt mir ein Javazusatzpaket?
Mfg
DeeDee0815