我有一个扩展JPanel的类“GUI”。我有另一个扩展JFrame的类“Buttons”。我试图让JFrame类调用JPanel类中的方法“clearscreen()”,当在JFrame上按下JButton“clearb”时。实现这一工作的唯一方法是在JButton的actionlistener中为JPanel类“GUI”构建对象:
clearB.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
GUI g = new GUI();
g.clearScreen();
}
}
);
但是当我调用方法clearScreen()时,它看起来如下所示:
public void clearScreen(){
xs.clear();
ys.clear();
count = 0;
repaint();
}
什么都没发生。我想这是因为repaint()方法由于我不知道的原因不能工作。有人请告诉我一个更容易,工作的方式来做我正在努力完成这里。谢了!:d
ActionListener无法工作的原因是,您在其中创建的GUI对象是一个新的GUI对象,该对象与所显示的GUI对象完全无关,因此在未显示的GUI实例上调用clearscreen()
方法不会对所显示的GUI实例产生影响。
解决方案是Buttons类保存对可视化GUI对象的有效引用,并调用该引用上的方法。可以通过setter方法或构造函数参数传递引用。
即,
public class Buttons {
private GUI gui;
public Buttons (GUI gui) {
this.gui = gui;
}
// in some ActionListener code...
gui.someMethod();
}
几点评论:
我是新来的Java,刚刚开始学习图形用户界面组件。所以,我正在阅读HeadfirstJava,有一个代码解释了的方法。只要用户点击“改变颜色”按钮,它就可以改变椭圆形的颜色。- MyDrawPanel类- 我从这个例子中得到了所有的东西,除了我们调用方法的部分。 书中提到,只需覆盖的方法,当您调用时,它将调用来呈现内容(因为我们不直接调用)。 现在,我通过扩展创建了类,并覆盖了它的方法。现在,当我
问题内容: 我有一些C#代码需要调用Python脚本数千次,每次都传递一个字符串,然后期望返回。可以使用任何版本的Python运行python脚本,因此我不能使用Iron python。建议使用IPC命名管道。我对此没有经验,并且在弄清楚如何在C#和Python之间执行此操作时遇到了麻烦。这是一个简单的过程,还是我正在寻找可观的工作量?这是解决我的问题的最好方法吗? 问题答案: 使用zeromq。
我最初是这样制作程序的。我使用extends Canvas和update方法来不断地绘制更多的点。我的理解是,每次调用repaint()时,新的点都会通过使用update()方法添加到现有的画布上。如果方法是paint()而不是update(),那么每次调用repaint()时,它将绘制一个只有50个点的新画布。这是我的扩展画布的BarnsleyFern类。 下面的代码是扩展JFrame的Barn
有什么建议可以让我做到这一点吗?
问题内容: 有两个Java文件,Server.java和Client.java。两者都放在单独的容器中。 DOCKER FILES: 我用于服务器的dockerfile(位于名为“ Server”的文件夹中)为: 客户端的dockerfile(位于名为``Client’‘的文件夹中)为: 构建容器: 使用以下容器构建容器 运行容器: 我使用命令运行图像。然后我首先运行serverimage。 我得
目前我有一个设置,我的客户机(web应用程序,iOS应用程序等)通过REST调用与我的后端API.NET web应用程序(Nancy)对话。没什么特别的. 我现在需要将这个API拆分为微服务,每个服务可以单独升级/部署。 我的主API(公共)将只执行身份验证,然后调用我的一个微服务,它将在我的专用网络中。 在主API和其他微服务API之间有哪些不同的通信方式?每种方法的优点/缺点? 通信需要是实时