sempre programei em C#, C, C++ mas agora necessito fazer um tabalho, e esse precisa ser em java. Como meu contato com java sempre foi muito pouco, estou tendo dificuldades em uma coisa que creio ser básica:
Eu criei, com a IDE NetBeans 6.9.1, um novo projeto Java de Área de Trabalho. Ele criou uma classe com nome meu_programaVIEW e outra com meu_progarmaAPP. Na view eu tenho os controles da tela. Como que faço para que, através da classe app, eu possa acessar os controles que estao na view? Preciso mudar texto de textbox, alterar cor de panels, e tudo mais através da app (ou qualquer outra classe que nao seja a view)…
Essa estrutura foi vc que montou?
Se você criar um JFrame através do New File, você vai poder arrastar os componenets e adicionar os eventos diretamente.
Mesmo assim, se você não quiser fazer isso, deixando suas classes de view e da lógica de negócios separadas, basta você passar como parâmetro para o construtor da classe de lógica a classe de View, e para acessar os componentes, crie o método get para cada um dos componentes que sejam relevantes.
sempre programei em C#, C, C++ mas agora necessito fazer um tabalho, e esse precisa ser em java. Como meu contato com java sempre foi muito pouco, estou tendo dificuldades em uma coisa que creio ser básica:
Eu criei, com a IDE NetBeans 6.9.1, um novo projeto Java de Área de Trabalho. Ele criou uma classe com nome meu_programaVIEW e outra com meu_progarmaAPP. Na view eu tenho os controles da tela. Como que faço para que, através da classe app, eu possa acessar os controles que estao na view? Preciso mudar texto de textbox, alterar cor de panels, e tudo mais através da app (ou qualquer outra classe que nao seja a view)…
Desde já agradeço[/quote]
Trocando em miúdos, você poderia fazer assim:
Na sua classe meu_programaVIEW você poderia criar um método que recebe uma String e seta o texto do seu componente textbox
public void setTextbox(String Texto){
textbox.setText(Texto);
}
Na sua classe meu_programaAPP você instanciaria a classe meu_progarmaVIEW e chamaria o método setTextbox passando o novo texto a ser inserido no componente textbox
meu_programaVIEW formView = new meu_programaVIEW();
formView.setTextbox("Texto Inicial deste componente");
formView.setVisible(true);
E assim faria com os outros componentes.
Uma outra forma seria você criar métodos get que retornem a referência aos componentes e setar os seus parâmetros a partir daí. Mas neste caso os objetos da classe VIEW devem ser públicos.
Mas, muito obrigado pela ajuda. Agora já deu pra resolver com isso.
Mas apareceu outro problema. Estou adicionando uma imagem de fundo num Jpanel, como descrito neste link: http://www.java-forums.org/awt-swing/29187-jlabel-wont-appear-front-background-image.html [So troquei o panel que ele criava por um que ja tinha adicionado no meu form].
Funciona bem, mas o problema é que eu adicionei (clicando e arrastando) algumas labels neste mesmo jpanel e, quando eu rodo o programa e a imagem de fundo é carregada, a imagem se sobrepoe a todos os controles que havia adicionado dentro do jpanel… A soluçao do link funciona só para labels criadas na mão.
Como faço para colocar esta imagem no fundo nao tampando as labels que adicionei clicando e arrastando? Ou, como criar labels na mao e setar a posição dela no panel??