gpt4 book ai didi

java - 如何将文本设置到位于 jFrame 内的 jPanel 内的 jTextField 中以从其他 jFrame 中

转载 作者:行者123 更新时间:2023-12-01 13:21:28 24 4
gpt4 key购买 nike

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

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 中的值,请记住我提到过,在两个 jFrame 中,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();
}
}

所以请不要看sintaxis,如果你能给我一个解决这个问题的想法,我想也许不要在jTextFields中显示它,因为它是私有(private)的,有什么方法可以显示它或者我如何更新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 中还是在控制类的两个实例的容器中,您都需要通过 actionListener 方法将 BusquedaCotizacionGUI 附加到 addActionListener 。当调用actionPeformed时,需要设置已有的PanelCotizacion实例的文本

关于java - 如何将文本设置到位于 jFrame 内的 jPanel 内的 jTextField 中以从其他 jFrame 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001596/

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