2014-02-24 80 views
0

這是第一個類,事情是我必須接收由按鈕中的事件觸發的其他類的值(行動表演),所以在這個班我想展示它!如何將文本設置爲一個jTextField,它位於jFrame內部的jPanel中,以供其他jFrame使用

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,有jPanels和JTextFields將在其內部。

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將導致顯示它是私有的,有沒有什麼辦法來顯示它或如何我可以更新jPanel組件以顯示更新TextFields嗎?非常感謝!

+0

參見[多個JFrames,好/壞習慣的用?(http://stackoverflow.com/a/9554657/418556) –

+0

你只是創建PanelCotization'的'實例除非你在'initComponent()'中做了,但你沒有顯示,並且我猜是netbeans mattise生成的代碼。 – nachokk

回答

1

您的示例患有參考問題。 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方法附加一個actionListenerBusquedaCotizacionGUI。當調用actionPeformed時,您需要設置PanelCotizacion實例的文本

+0

嗨,謝謝你的答案,你只能給我一個線索如何將一個actionListener附加到BusquedaCotizacionGUI? – Mario

+0

當然,請參閱*「In'BusquedaCotizacionGUI'下的大代碼塊add ...」*?然後給出一個'BusquedaCotizacionGUI'的實例,只需使用'instanceOfBusquedaCotizacionGUI.addActionListener(instanceOfAnActionListener)' – MadProgrammer

0

嘗試在您的jframe的其他構造函數中使用您的jframe,文本和麪板作爲參數,而不是在調用您的jframe時使用它們操作按鈕這樣

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