所以我在 JFrame 的 JLabel 中有一个对象。
我无法更改 JLabel/JFrame 的代码。
如何让对象返回它所在的 JFrame?
图形用户界面
import javax.swing.*;
public class GUI extends JFrame
{
public GUI()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setSize(100,50);
JLabel label = new JLabel(new TestObject().toString());
label.setBounds(5,5,90,20);
add(label);
setVisible(true);
}
}
我的对象
public class TestObject
{
public String toString()
{
return "TestObject";
}
}
我试过的东西,但它打印空
import java.awt.*;
import javax.swing.*;
public class TestObject
{
public TestObject()
{
new Bug();
}
public String toString()
{
return "TestObject";
}
private class Bug extends Component
{
public Bug()
{
System.out.println(SwingUtilities.getWindowAncestor(this));
}
}
}
我可以这样做,但假设我已经知道标题
import java.awt.*;
import javax.swing.*;
public class TestObject
{
public TestObject()
{
for(Window w : Window.getWindows())
{
Frame f = (Frame) w;
if(f.getTitle().equals("hi"))
{
JFrame g = (JFrame) f;
JLabel j = new JLabel("Test");
j.setBounds(5,20,90,20);
g.add(j);
g.repaint();
}
}
}
public String toString()
{
return "TestObject";
}
}