MVC - Funcionar botões

2 respostas
L

Sou iniciante em JAVA e estou com dificuldade na hora de implementar com o Padrão MVC
gostaria de fazer os clicks dos botões (btnIniciar = outra JFrame, btnPontuacao = uma JOpitionPane, btnInstrucao = mudança de painel).
porém ao clicar nos botões nada acontece!
ainda não criei o modelo :confused:
Alguém por favor poderia me ajudar ??? GRATO!

programa MAIN:
ProgMain.java (442 Bytes)

CONTROLE:
Controle.java (1,1 KB)

UIPrincipal:
UIPrincipal.java (3,6 KB)

UIJogo:
UIJogo.java (1,4 KB)

UIInstrucao:
UIInstrucao.java (1,9 KB)

UIPONTUACAO:
UIPontuacao.java (343 Bytes)

2 Respostas

rodriguesabner

Me ayuda a ayudarte amigo

L

PROGRAMA MAIN:

import javax.swing.JFrame;

import gerencia.Controle;

import gui.UIJogo;

import gui.UIPrincipal;

public class ProgMain {

public static void main(String[] args) {

try{
  UIPrincipal janela = new UIPrincipal();
  Controle sistema = new Controle() ;
  
  janela.setActionListener(sistema);
  sistema.setInterface(janela);
  
  sistema.start();
  
  }catch(Exception e) {System.err.println(e.getMessage());}

}
}

CONTROLE:

package gerencia;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import gui.UIPrincipal;

public class Controle implements ActionListener {

private UIPrincipal janela;

public void setInterface(UIPrincipal janela) {

this.janela = janela;

}

public void start() {

janela.setTitle("AVENTURA ECOLÓGICA");
  janela.setSize(700,600);
  janela.setResizable(false);	//nao maximiza
  janela.setDefaultCloseOperation(UIPrincipal.EXIT_ON_CLOSE);
  janela.setLocationRelativeTo(null);
  janela.setActionListener(this);
  janela.setVisible(true);
}

<a class="mention" href="/u/override">@Override</a>

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("mMENU")) {
  	janela.configurarTela(UIPrincipal.MENU);
  }
  else if(e.getActionCommand().equals("mINSTRUCAO")) {
  	janela.configurarTela(UIPrincipal.INSTRUCAO);
  	
  }
  else if(e.getActionCommand().equals("mPONTUACAO")) {
   
  	janela.configurarTela(UIPrincipal.PONTUACAO); 
  
  }

}

}

UIPrincipal:

package gui;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class UIPrincipal extends JFrame {
	
	public static final int MENU = 0;
	public static final int JOGO= 1; 
	public static final int PONTUACAO = 2;
	public static final int INSTRUCAO = 3;

	
	private JPanel painelDeConteudo = null;
	private JLabel lbTextoLogo = null;
	private JButton btnIniciar = null;
	private JButton btnInstrucao = null;
	private JButton btnPontuacao = null;
	

	
	public UIPrincipal() {

		this.setContentPane(getPainelDeConteudo());

		//IMAGEM DE FUNDO\\
	ImageIcon img = new ImageIcon(getClass().getResource("../imagens/iconRecicla.png"));
	JLabel lbImg = new JLabel(img);
	lbImg.setBounds(100,50,500,500);
	img.setImage(img.getImage().getScaledInstance(lbImg.getWidth(), lbImg.getHeight(),1));	// redimenciona a imagem
	getContentPane().add(lbImg);

	}
	private JPanel getPainelDeConteudo() {
		if( painelDeConteudo == null) {
			painelDeConteudo = new JPanel();
			painelDeConteudo.setLayout(new BorderLayout());
			painelDeConteudo.add(getBtnIniciar(), null);
			painelDeConteudo.add(getBtnInstrucao(),null);
			painelDeConteudo.add(getBtnPontuacao(),null);
			painelDeConteudo.add(getLogo(),null);
		}
		return painelDeConteudo;
	}
	
		private JLabel getLogo() {
				if(lbTextoLogo == null) {
			lbTextoLogo = new JLabel("AVENTURA ECOLÓGICA");
			
			lbTextoLogo.setBounds(1,200,900,100);
			lbTextoLogo.setFont(new Font("Algerian", Font.BOLD,60));
			lbTextoLogo.setHorizontalTextPosition(SwingConstants.CENTER);//centraliza a JLabel
			}
			return lbTextoLogo;
			
		}
		private JButton getBtnIniciar() {
			if (btnIniciar == null) {
			btnIniciar = new JButton("INICIAR");
			btnIniciar.setBounds(10,500,150,50);
			}
			btnIniciar.setActionCommand("mIniciar");
			return btnIniciar;
			
		}
	private JButton getBtnInstrucao() {
		if(btnInstrucao == null) {
			btnInstrucao = new JButton("INSTRUCAO");
			btnInstrucao.setBounds(540, 500, 150, 50);
		}
		btnInstrucao.setActionCommand("mInstrucao");
		return btnInstrucao;
	}
	private JButton getBtnPontuacao() {
		if(btnPontuacao == null) {
			btnPontuacao = new JButton("PONTUAÇÃO");
			btnPontuacao.setBounds(270, 500, 150, 50);
		}
		btnInstrucao.setActionCommand("mPontuacao");
		return btnPontuacao;
	}
		
			
	public void configurarTela(int modoDeTela) {

		getContentPane().removeAll();
		switch (modoDeTela) {
		case MENU:

			painelDeConteudo = null;
			break;
		
		case JOGO:

			JFrame painelDoJogo =  new JFrame();
			painelDoJogo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			painelDoJogo.setSize(1000,700);
			painelDoJogo.setLocationRelativeTo(null);
			painelDoJogo.setVisible(true);
						
			break;
		case PONTUACAO:
			
				painelDeConteudo = new UIPontuacao();
			break;
			
		case INSTRUCAO:
			
				painelDeConteudo = new UIInstrucao();
			break;
		
		default:
		
				painelDeConteudo = null;
			break;
		}
	
		if (painelDeConteudo != null) 
			setContentPane(painelDeConteudo);
		
	getContentPane().validate();
	getContentPane().repaint();
	}
	
	public void setActionListener(ActionListener listener) {
		btnInstrucao.addActionListener(listener);
		btnIniciar.addActionListener(listener);
		btnPontuacao.addActionListener(listener);
		
		
}
}

UIJogo:

package gui;

import java.awt.BorderLayout;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;
public class UIJogo extends JFrame {

private JLabel 	lbLixo = null ,

lbObjeto = null;

private JPanel painelJogo =  null;

ImageIcon imagemObj;

public UIJogo() {

getPainelDeConteudo();

ImageIcon img = new ImageIcon(getClass().getResource("…/imagens/fundoRua2.JPG"));

JLabel lbImg = new JLabel(img);

lbImg.setBounds(0,0,700,700);

img.setImage(img.getImage().getScaledInstance(lbImg.getWidth(), lbImg.getHeight(),1));	// redimenciona a imagem

getContentPane().add(lbImg);
}

private JPanel getPainelDeConteudo() {

if( painelJogo == null) {

painelJogo = new JPanel();

painelJogo.setLayout(new BorderLayout());

painelJogo.add(add(getLbObjeto()), null);
}
  return painelJogo;

}

private JLabel getLbObjeto() {

if (lbObjeto == null) {

ImageIcon imagemObj = new ImageIcon(getClass().getResource("…/imagens/Imagens-obj-lixos/fimg-vidro/garrafa51.png"));

lbObjeto = new JLabel(imagemObj);

lbObjeto.setBounds(350,500,50,50);

imagemObj.setImage(imagemObj.getImage().getScaledInstance(lbObjeto.getWidth(), lbObjeto.getHeight(),1));	// redimenciona a imagem
}
  return lbObjeto;

}

}

UIInstrucao:

package gui;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

@SuppressWarnings(serial)

public class UIInstrucao extends JPanel{
private JPanel painelInstrucao = null;

private JLabel lbInstrucao = null;

private JButton btnVoltar = null;

protected JFrame instrucao = null;

public UIInstrucao() {

instrucao.setContentPane(getPainelInstrucao());
  
  	if(painelInstrucao == null) {
  		painelInstrucao = new JPanel();
  		painelInstrucao.add(getTexto(),null);
  		painelInstrucao.add(getVoltar(),null);
  		
  	}

}

private JPanel getPainelInstrucao() {

if(painelInstrucao == null) {

painelInstrucao = new JPanel();

painelInstrucao.add(getTexto(),null);

painelInstrucao.add(getVoltar(),null);
}
  return painelInstrucao;

}

private JButton getVoltar() {

if(btnVoltar ==	null) {

btnVoltar = new JButton();

btnVoltar.setBounds(10,500,150,50);

}

btnVoltar.setActionCommand(mVoltar);

return btnVoltar;

}

private JLabel getTexto() {

if(lbInstrucao == null) {
  	lbInstrucao = new JLabel("	Lorem ipsum sapien inceptos orci elit eget venenatis eget,"
  	+"\n rhoncus habitasse pellentesque ultricies eget elit ultrices donec tellus,"
  	+"\n nostra aenean nam eleifend lacinia velit non. lorem tempus justo blandit "
  	+"\n orci feugiat est vel venenatis metus sapien ad, orci scelerisque non nostra"
  	+"\n risus odio consectetur torquent auctor. ornare potenti fringilla litora"
  	+"\n risus quis amet dictum aliquam, nostra mollis tempus eleifend tempor placerat"
  	+"\n ad faucibus, posuere duis potenti quisque sociosqu curabitur non.");
  	lbInstrucao.setBounds(50,30,500,500);
  	}
  return lbInstrucao;

}

public void setActionListener(ActionListener listener) {
btnVoltar.addActionListener(listener);

}
}

UIPontuacao:

package gui;

import java.awt.event.ActionListener;

import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class UIPontuacao extends JPanel{

public UIPontuacao() {

JOptionPane.showMessageDialog(null,

Desculpe. Você ainda não salvou pontos !!,

IMPORTANTE!, JOptionPane.WARNING_MESSAGE);

}

}

Criado 16 de outubro de 2018
Ultima resposta 16 de out. de 2018
Respostas 2
Participantes 2