我有两个类,我正在使用ActionListeners,事情是我想从第二个类中接收First类中的int值... 第一类是这一个:
public class PanelCotizacion extends javax.swing.JPanel implements ActionListener {
private int numCotizacion = 0;
public PanelCotizacion() {
initComponents();
}
public void actionPerformed(ActionEvent e) {
System.out.println("HERE IS WHERE I WANT TO RECEIVE THE VALUE");
this numCotizacion = "";
//THE VALUE THAT I WANT TO RECEIVE FROM THE OTHER jFRAME
//TRIGGERED BY THE EVENT OF THE BUTTON (action performed)
}
}
这是第二个,我想发送int值:
public class BusquedaCotizacionGUI extends javax.swing.JFrame {
private int numCotizacion = 0;
public BusquedaCotizacionGUI() {
initComponents();
this.setLocationRelativeTo(null);
PanelCotizacion pC = new PanelCotizacion();
this.cmdOK.addActionListener(pC);
}
private void cmdOKActionPerformed(java.awt.event.ActionEvent evt) {
this.numCotizacion = Integer.parseInt(this.txtNumCotizacion.getText());
//Here is where I WANT TO PASS THE VARIABLE "numCotizacion" tho the other class
//Can Somebody Help Me
this.dispose();
}
}
你能帮我们做这件事,非常感谢!
答案 0 :(得分:1)
从您的代码中我认为BusquedaCotizacionGUI JFrame
负责打开PanelCotizacion Jpanel
并传递您的变量。
因此,有很多方法可以将变量从JFrame
传递到JPanel
。
您可以创建一个带有int参数的构造函数,然后在构造函数中传递变量,如:
public PanelCotizacion(int numCotizacion) {
initComponents();
this.numCotizacion = numCotizacion;
}
或者您可以将JFrame
作为父组件传递给JPanel
到构造函数,然后通过创建get方法来获取值,例如,
private JFrame parent;
public PanelCotizacion(JFrame parent) {
initComponents();
this.parent= parent;
}
然后得到像:这样的值
parent.getNumCotizacion();
答案 1 :(得分:0)
Object getSource()
类中有ActionEvent
方法,因此在ActionListener中,您可以获取源并将其强制转换为PanelCotizacion
。其他可能性是将BusquedaCotizacionGUI
的引用添加到PanelCotizacion
的构造函数中。
答案 2 :(得分:0)
在你的第二个JFrame(BusquedaCotizacionGUI)中添加这行代码(sth ike this):
PanelCotizacion.setParam(int parameterToPass)
并在第一个JFrame(PanelCotizacion)中添加一个方法(比如setParam)和一个整数字段(比如myField):
public void setParam (int param) {
this.myField = param;
}
你应该决定如何实现这个想法(静态方法与创建第一个JFrame的实例,...);这只是一般的想法,定制它以满足您的愿望。