Galera,
Estou fazendo uma pequena modificação num programa que está em MVC (Model-View-Controller).
Tenho que implementar uma JComboBox com ActionListenner. Para isso segui o exemplo da oracle:
http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html
Criei um projeto à parte e implementei o que meu JComboBox iria fazer. No caso, é visualizar um gráfico e uma JTable, no momento em que se clica na JComboBox.
Mas quando vou implementar este código no programa, não está dando certo.
Por exemplo:
No trecho de código do exemplo da Oracle, temos isso:
[code] public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
} [/code]
Porém no caso do programa aqui que estou tentando mexer, a JComboBox está na classe “ViewFrm”. Porém, pelo que li do modelo MVC, eu tenho que implementar a ação do JComboBox na minha classe de controle, a “CtrFrm”.Tentei fazer o seguinte.
Na classe “ViewFrm”, fiz o seguinte:
private JComboBox cbCombo;
....
cbCombo = new JComboBox();
...
public JComboBox getcbCombo() {
return cbCombo;
}
Até aí tudo bem, mas aqui na classe “CtrFrm” que começa o problema:
Eu não consigo pegar o cbCombo da outra classe para implementar no método “actionPerformed” do exemplo da oracle:
Sei que para me referir ao meu JComboBox da classe “ViewFrm” na classe “CtrFrm” é só fazer:
private ViewFrm formulario;
formulario.getcbCombo();
Porém, neste caso:
[code] public void actionPerformed(ActionEvent e) {
[code] public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
} [/code]
Como me referir ao meu JComboBox “cbCombo” que está em outra classe no trecho acima?
Tentei fazer:
formulario.getcbCombo() cb = (JComboBox)e.getSource();
… e continuar o código
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
Porém não dá certo.
Alguém sabe como resolver este problema em MVC?
Grande Abraço!