gpt4 book ai didi

java - 我没有得到两个相似的 JFrame,而是得到了一个带有双组件的 JFrame

转载 作者:行者123 更新时间:2023-12-02 05:13:46 25 4
gpt4 key购买 nike

我创建了一个带有按钮、标签和文本的JFrame,我想在执行主程序时显示它两次,所以我这样做了:

import java.net.SocketException;

public class Main {

public static void main(String[] args) throws SocketException {
new MyFrame("client1");
new MyFrame("client2");
}
}

结果:我得到两个框架:一个框架内有另一个框架的组件,另一个框架是空的。

如何解决这个问题?

最佳答案

您正在将 static 实例字段与您的组件的 MyFrame 一起使用

组件只能驻留在单个容器中,当您创建第二个框架时,静态组件会先从第一个容器中删除,然后再添加到第二个容器中。

解决方案,永远不要这样做......

我假设您使用的是 static 因为您想从另一个类访问这些字段,在这种情况下,您应该在 MyFrame 类中使用适当的 getter 并传递引用将其提供给那些需要它的类(class)。

或者,您可以建立一系列观察者来监视更改并采取适当的操作,这有助于解耦代码。

就个人而言,如果您需要以某种方式修改 MyFrame 实例,我会提供更新组件的 setter 方法,因为我不喜欢在没有充分理由的情况下公开 UI 元素,以其他人有很多机会适本地干扰他们

关于java - 我没有得到两个相似的 JFrame,而是得到了一个带有双组件的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com