Java 使用另一个类JFrame

Java 使用另一个类JFrame,java,swing,jframe,Java,Swing,Jframe,我试着搜索它,但我真的不知道该用什么术语,所以没有结果。 基本上,我在一个类中创建了一个JFrame,它不继承任何东西,但是有两个类,Farmer.java和SheepHandlerThread.java,我想使用在初始类中创建的JFrame,并向其中添加一些额外的形状和对象,当SheepHandlerThread处理羊的放牧和行为时,Farmer.java控制一个正方形,该正方形指向鼠标单击的位置 如果我问了一个已经回答过的问题,我会道歉,但我已经开始绕圈子,把自己弄糊涂了,所以我希望能在这里

我试着搜索它,但我真的不知道该用什么术语,所以没有结果。 基本上,我在一个类中创建了一个JFrame,它不继承任何东西,但是有两个类,Farmer.java和SheepHandlerThread.java,我想使用在初始类中创建的JFrame,并向其中添加一些额外的形状和对象,当SheepHandlerThread处理羊的放牧和行为时,Farmer.java控制一个正方形,该正方形指向鼠标单击的位置

如果我问了一个已经回答过的问题,我会道歉,但我已经开始绕圈子,把自己弄糊涂了,所以我希望能在这里得到一些帮助。询问您是否需要任何澄清

谢谢, Ryan

这两个对象需要以某种方式引用JFrame对象。构造这两个对象时,将JFrame对象传递给它们。然后,构造函数可以将框架存储在实例字段中,并在需要时对其执行任何操作

或者这些对象不应该与UI有关,而应该只为框架提供服务。在这种情况下,让帧调用这些服务并使用这些服务的结果更新自身

这两个对象需要以某种方式引用JFrame对象。构造这两个对象时,将JFrame对象传递给它们。然后,构造函数可以将框架存储在实例字段中,并在需要时对其执行任何操作


或者这些对象不应该与UI有关,而应该只为框架提供服务。在这种情况下,让帧调用这些服务并使用这些服务的结果更新自身

我同意上述答案。除此之外,我还举了一个对你们有帮助的例子

class FrameDemo{

    private JFrame frame;
    private SheepHandlerThread sheepHandlerThread;
    private Farmer farmer;

    public FrameDemo(){
       initComponents();
    }

    private void initComponents() {
        frame = new JFrame(...);
        /* Pass frame reference to the 
           Farmer and SheepHandlerThread
           class    
            */
      farmer = new Farmer(frame);
      sheepHandlerThread = new SheepHandlerThread(frame);   
    }

}

我同意上面的回答。除此之外,我还举了一个对你们有帮助的例子

class FrameDemo{

    private JFrame frame;
    private SheepHandlerThread sheepHandlerThread;
    private Farmer farmer;

    public FrameDemo(){
       initComponents();
    }

    private void initComponents() {
        frame = new JFrame(...);
        /* Pass frame reference to the 
           Farmer and SheepHandlerThread
           class    
            */
      farmer = new Farmer(frame);
      sheepHandlerThread = new SheepHandlerThread(frame);   
    }

}

“不继承任何内容”是什么意思?是不是您没有创建自己的自定义JFrame?是什么意思?是不是您没有创建自己的自定义JFrame?啊!我懂了!这使它更容易一些!我刚刚把自己弄得一团糟,我更糊涂了,谢谢你们的帮助!编辑:无法更新您的答案,抱歉:(啊!我明白了!这让事情变得更容易了!我刚刚把自己弄得一团糟,我进一步把自己弄糊涂了,谢谢你们的帮助!编辑:无法更新您的答案,抱歉:(