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

时间:2015-01-13 11:09:12

标签: java swing jframe

所以,我有一个扩展 JFrame的类窗口,这是一个更大的窗口。

enter image description here

然后我的课程MathematicalFunvtions扩展 JFrame,这是一个较小的窗口。

我想在另一个班级中将它们组合在一起"测试"所以他们一起工作。

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


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

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

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

  2. 当我将主窗口发送到函数时,我想知道该对象内部,当主窗口被移动时...所以这个对象可以跟踪它和调整到所以他们总是在一起。

1 个答案:

答案 0 :(得分:1)

我没有放弃研究,最后我得到了...我把这段代码放在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());   
}

它应该如何工作。每次我移动更大的窗口,小的一个跟随:)

更多...... 我也做过MathematicalFunction类JDialog扩展

public class MathematicalFunctions extends javax.swing.JDialog

并且测试类看起来像之前

public static void main(String args[])
{

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


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