如何在另一个中获取 JFrame 对象移动 class

How to get JFrame object movement in another class

所以,我有一个 class Window,它 扩展了 JFrame,这是更大的 window。

然后我有 class MathematicalFunvtions 扩展 JFrame,这是较小的 window.

我想将它们组合在另一个 class "Test" 中以便它们一起工作。

public static void main(String args[]) {       
    Window mainwindow;
    mainwindow = new Window();
    mainwindow.setVisible(true);


    MathematicalFunctions functions;
    functions = new MathematicalFunctions(mainwindow);
}

我的方法是将 Window 对象的引用作为 MathematicalFunctions 的参数并让它完成工作。

  1. 问题是...这是编程的好方法吗?

  2. 当我发送 mainwindowfunctions 我想知道那个对象里面,当 main window 被移动时...所以这个对象可以跟踪它并调整到它们总是在一起。

我没有放弃研究,最后我明白了...我把这段代码放在 MathematicalFunctions 的构造函数中:

mainwindow.addComponentListener(new java.awt.event.ComponentAdapter() {
        @Override
        public void componentMoved(java.awt.event.ComponentEvent evt) {
            GlowneComponentMoved(evt);
        }
    });

//and the listener....
private void GlowneComponentMoved(ComponentEvent evt) 
{
      this.setLocation( (Okno_Glowne.getX()+ Okno_Glowne.getWidth()+10), Okno_Glowne.getY());   
}

并且它按应有的方式工作。每次我变大window,小的就跟着:)

更... 我还制作了 MathematicalFunction class JDialog 扩展

public class MathematicalFunctions extends javax.swing.JDialog

并且测试 class 看起来像之前

public static void main(String args[])
{

   oknoo mainwindow;
   mainwindow = new oknoo();
   mainwindow.setVisible(true);


   MathematicalFunctions funkcje;
   funkcje = new MathematicalFunctions(OknoGlowne);
}

;)