Java 如何将text设置为jFrame内的jPanel内的jTextField,以从其他jFrame

Java 如何将text设置为jFrame内的jPanel内的jTextField,以从其他jFrame,java,swing,Java,Swing,这是第一个类,我必须从另一个类接收由按钮中的事件触发的值(执行的操作),所以在这个类中我想显示它 public class PanelCotizacion extends javax.swing.JPanel { private int numCotizacion = 0; public int getNumCotizacion() { return numCotizacion; } public void setNumCotizacion(int

这是第一个类,我必须从另一个类接收由按钮中的事件触发的值(执行的操作),所以在这个类中我想显示它

public class PanelCotizacion extends javax.swing.JPanel {
    private int numCotizacion = 0;
    public int getNumCotizacion() {
        return numCotizacion;
    }
    public void setNumCotizacion(int numCotizacion) {
        this.numCotizacion = numCotizacion;
    }
    public PanelCotizacion() {
        initComponents();
        showTextFields();
    }
    show textFields(){
        this.txtCosTra.setText(String.valueOf(cosTra));
    }
}
这是第二个类,我想在其中发送jTextField中的值,请记住,我提到在两个jFrames中,都有jpanel,jTextField在其中

public class BusquedaCotizacionGUI extends javax.swing.JFrame {
    public BusquedaCotizacionGUI() {
        initComponents();
        this.setLocationRelativeTo(null);        
    }

    private void cmdOKActionPerformed(java.awt.event.ActionEvent evt) {
        PanelCotizacion p = new PanelCotizacion();
        p.setNumCotizacion(Integer.parseInt(this.txtCotizacion.getText()));
        p.setVisible(true);
        p.revalidate();
        p.updateUI();
        this.dispose();
    }
}

所以请不要看这个轴,如果你能给我一个解决这个问题的方法,我想可能不会在jTextFields中显示它,因为它们是私有的,有没有办法显示它,或者我如何更新jPanel组件来显示更新的TextFields?非常感谢

您的示例存在引用问题。
PanelCotizacion
的实例与屏幕上的内容无关(或者至少,您从未将其添加到屏幕上-这可能是我不知道的问题的解决方案)

最简单的解决方案是将某种侦听器附加到第二个类(事件源),该类提供值已更改的通知,然后提供某种访问器从类中提取值,例如
public String getText(){…}

BusquedaCotizacionGUI
中添加

public void addActionListener(ActionListener listener) {
    cmdOk.addActionListener(listener);
}

public void removeActionListener(ActionListener listener) {
    cmdOk.removeActionListener(listener);
}

public String getText() {
    return txtCotizacion.getText();
}

无论是在
PanelCotizacion
还是控制类的两个实例的容器中,您都需要通过
addActionListener
方法将
actionListener
附加到
BusquedaCotizacionGUI
。调用
actionPeformed
时,您需要设置
PanelCotizacion
实例的文本。您已经有了请尝试在jframe的另一个构造函数中使用jframe、text和panel作为参数,而不是像这样调用操作按钮时在其内部使用它们

public constructoroftheotherJFrame (firstJFrame frame , String yourtext){
this.frame=frame;
this.text=text;
// then type your code there
}

请看,您只是创建了一个
PanelCotization
的实例,除非在
initComponent()
中添加,否则不会添加到任何屏幕,但您没有显示,我猜是netbeans mattise生成的代码。您好,谢谢您的回答,您能给我一个如何将actionListener附加到BusquedaCotizacionGUI的线索吗?当然,查看“In
busqedacotizaciongui
add…”下的大代码块?然后给出一个
BusquedaCotizacionGUI
实例,只需使用
instanceOfBusquedaCotizacionGUI.addActionListener(instanceOfAnActionListener)