gpt4 book ai didi

java - 引用不同 Java 文件中的方法

转载 作者:行者123 更新时间:2023-11-30 04:44:46 24 4
gpt4 key购买 nike

我是 Java 编程新手,面临着一个(很可能)简单的问题,我似乎无法理解也无法理解。

我有三个不同的 java 文件,一个是我创建界面 (SimulatorGui.java),另一个是我创建一个面板以在界面中创建的 jTabbedPanel 上使用(CollisionPanel.java - CollisionPanel 类),第三个是,我在其中运行一个代码来创建所需的输出(Collision.java - Colision 类)。

在 Collision.java 主方法中,我正在执行以下操作:

  public static void main (String[] args) {

//<editor-fold defaultstate="collapsed" desc="Simulation start procedures">
Tally statC = new Tally ("Statistics on collisions");
Collision col = new Collision (100, 50);
col.simulateRuns (100, new MRG32k3a(), statC);
//</editor-fold>


new SimulatorGUI().setVisible(true);
CollisionPanel update = new CollisionPanel();
update.updatepanel();

第一个 block 将创建所需的输出。然后我想将该输出发送到更新面板!我没有向该方法传递任何参数,因为我仍在尝试调试它。 updatepanel方法在CollisionPanel文件中创建如下:

public void updatepanel(){
System.out.println ("debug");
jTextArea1.setText("update\n");
}

然后发生的情况是,当我运行 Collision.java 文件时,它将输出“调试”文本,但不会将文本设置为 jTextArea1(附加也不起作用)。然后我创建了一个按钮来尝试这样做,在这种情况下它可以工作。在 CollisionPanel.java 中:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
updatepanel();
}

这个就可以了!我搜索并尝试了不同的方法,但似乎无法理解为什么这行不通。

预先感谢您的帮助,希望我已经弄清楚了问题!

最佳答案

好吧,我想我最终遇到了问题,这是因为 IDE,你在 main 方法中看到你启动了一个新的 CollisionPanel,这是错误的,netbeans 已经添加了在 SimulatorGUI 中启动该面板,所以现在您需要做的是在 SimulatorGUI 中添加一个 get 方法来获取启动的面板,然后调用该面板上的 update 方法.

因此将其添加到SimulatorGUI:

public CollisionPanel getCollisionPanel1() {
return collisionPanel1;
}

将旧的 updatePanel() 方法替换为:

 void updatepanel(String str) {
System.out.println ("debug");
jTextArea1.setText(str);
// jTextArea1.revalidate();
jLabel1.setText("test");
}

之后,将您的 main 更改为如下所示:

            SimulatorGUI simulatorGUI = new SimulatorGUI();
simulatorGUI.setVisible(true);
CollisionPanel cp=simulatorGUI.getCollisionPanel1();
cp.updatepanel("Hi");

并且不要忘记从 CollisionPanel 构造函数中删除旧的 updatePanel() 方法调用,因为现在您只需调用 cp.updatePanel("text here "); 在您的 SimulatorGUI 类中,而不是仅在构造函数中调用它。

我希望这很容易理解,如果您不确定,请告诉我

关于java - 引用不同 Java 文件中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297664/

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