Supportnet / Forum / Anwendungen(Java,C++...)
[Java] JDialog -> Owner nachträglich hinzufügen
Frage
Hallo Ihr Javanesen,
gibt es eine Möglichkeit einem JDialog nachträglich den Owner hinzuzufügen?
Beispiel: MeinJDialog.setOwner(JFrame)
Wozu ist der Owner eigentlich gut? :)
Danke vorab!
Antwort 1 von disco
moin
da musste mal etwas genauer werden. das einzige setOwner, dass ich finden konnte, ist das:
http://java.sun.com/j2se/1.5.0/docs/api/java/beans/XMLDecoder.html#...
und das hat eher wenig mit nem Dialog zu tun..
vielleicht ne selbst geschriebene Methode?
g,
disco
da musste mal etwas genauer werden. das einzige setOwner, dass ich finden konnte, ist das:
http://java.sun.com/j2se/1.5.0/docs/api/java/beans/XMLDecoder.html#...
und das hat eher wenig mit nem Dialog zu tun..
vielleicht ne selbst geschriebene Methode?
g,
disco
Antwort 2 von slartidan
Servus,
Also theoretisch ist das schon möglich - aber praktisch vermutlich nicht sinnvoll. Du musst dafür nämlich in die tiefsten Gefilde von awt...
Wenn es dafür Gesetze gäbe, dann wäre das hier (reflection, usw.) sicherlich verboten B)
Wenn du dir ganz sicher bist, das du das willst ist hier der Code:
Gruß,
slarti :)
Also theoretisch ist das schon möglich - aber praktisch vermutlich nicht sinnvoll. Du musst dafür nämlich in die tiefsten Gefilde von awt...
Wenn es dafür Gesetze gäbe, dann wäre das hier (reflection, usw.) sicherlich verboten B)
Wenn du dir ganz sicher bist, das du das willst ist hier der Code:
import java.awt.Component;
import java.awt.Container;
import java.lang.reflect.Field;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class JDialogWithChangingParents extends JDialog
{
public void setParent(Container aParent)
{
try
{
Field declaredField = Component.class.getDeclaredField("parent");
declaredField.setAccessible(true);
declaredField.set(this, aParent);
} catch (Throwable t)
{
t.printStackTrace();
}
}
public static void main(String[] args)
{
JDialogWithChangingParents dialog = new JDialogWithChangingParents();
System.out.println(dialog.getOwner());
dialog.setParent(new JFrame());
System.out.println(dialog.getOwner());
}
}
Gruß,
slarti :)

