好吧,可以说我有3个Jpanels-1个父母和2个孩子

//Assume necessary imports etc


父母是这样的:

public class ParentPanel extends JFrame  {
private JPanel mainPanel,controlPanel;

public ParentPanel(){
    MainPanel pp= new ParentPanel();
    controlPanel cp = new controlPanel();
}
...


实际中的主面板就像2D图形一样,但是对于如此简化的点并不重要:

public class MainPanel implements MouseMotionListener{
    public MainPanel(){
        //not important now
    }

    public void MouseMoved(MouseEvent arg0){
        int xPos e.getX
    }
...


我要执行的操作是获取鼠标的X pos,并将其从主面板传递到父面板,并传递到例如同级控制面板上的标签中。

任何想法线索或指针表示感谢

最佳答案

根据GUI的复杂程度,您可以将ParentPanel对象作为参数传递给MainPanel对象。在MainPanel中,您可以访问ParentPanel的所有组件等。

 public class MainPanel implements MouseMotionListener{

 ParentPanel parent;

 public MainPanel(ParentPanel p){
    //not important now
    parent = p;
 }

 public void MouseMoved(MouseEvent arg0){
    //Access to parent here.
 }


并且在创建MainPanel时在ParentPanel中:

MainPanel pp= new MainPanel(this);


当然,这是一个非常简单的解决方案,更复杂的GUI将不适用。

10-08 19:38