[Resolvido]Me ajudem com Frames!

3 respostas
Furyeyes

Estou fazendo um programa que através da Janela principal eu acesso outras, estou implementando, mas estou com dúvidas:

1 - Eu consegui fazer os botões acessarem outras Frames com o ActionListener, mas estou com dúvida do que implementar no botão sair, quero que ao ser clicado o programa encerre, no caso do meu programa ele não está encontrando o b4, pede para cria uma variavel local b4.
b4.addActionListener(this);
Adcionei o ActionListener ao b4
public void actionPerformed(ActionEvent e){
	    	  if(e.getSource()==b4){
	  				
	    	  }
Aqui eu quero encerrar o programa, também estou com dúvida nisso 2 - Gostaria que analizassem minha classe principal, e me dessem dicas do que melhorar ou tirar, não dá erro, mas tô ficando confuso.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Telas extends JFrame implements ActionListener
   {
	public static void main(String []args){	
		new Telas().telaHome();
				
	}
	   
	   public void telaHome(){//Tela principal
	      JButton b1 = new JButton("Hospedagem");
	      JButton b2 = new JButton("Funcionários");
	      JButton b3 = new JButton("Fornecedores");
	      JButton b4 = new JButton("Sair");
	      ImageIcon icone = new ImageIcon("C:/Users/downloads/hotel2.jpg");
	      JLabel l1 = new JLabel(icone);
	      
	      setTitle("The Julia's Hotel");
		  setSize(1025,600);//Tamanho da tela  (Largura / Comprimento)
		  setResizable(false);//Não pode redimensionar
		  getContentPane().setBackground(new Color(0,0,0));//Cor de fundo
		  getContentPane().setLayout(null);//Sem Gerenciador de Layout
		  //Configurações dos botões
		  b1.setBounds(470, 285, 120, 30);//(x, y, largura, altura)
		  b1.setToolTipText("Hospedagem");
		  b2.setBounds(470, 325, 120, 30);
		  b2.setToolTipText("Funcionários");
		  b3.setBounds(470, 365, 120, 30);
		  b3.setToolTipText("Fornecedores");
		  b4.setBounds(890, 500, 90, 30);
		  b4.setToolTipText("Sair");
		  l1.setBounds(0, 0, 1025, 600);//Imagem de fundo
		  getContentPane().add(b1);
		  getContentPane().add(b2);
		  getContentPane().add(b3);
		  getContentPane().add(b4);
		  getContentPane().add(l1);
		  b1.addActionListener(new TelaCliente());//b1 chama a TelaCliente
		  b2.addActionListener(new TelaFunc());//b2 chama a TelaFunc
		  b4.addActionListener(this);
		  
		  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		  		  
		  setVisible(true);
	      }//Fecha TelaHome

Valeu galera, sei que alguém vai me entender... :D

3 Respostas

InicianteJavaHenriqu

Para encerrar toda a aplicação use System.exit(0);

E para dica de seu código fonte use gerenciadores de layout e nunca setBounds();

Furyeyes

Valeu pela dica, mas quando eu uso gerenciador os botões ficam enormes e não sei arrumar, e qual gerenciador você indicaria?

InicianteJavaHenriqu

Qual layout manager você estava usando :?: o default do JFrame é o BordeLayout.

Indico que você leia a documentação oficial dos gerenciadores de layout :arrow: http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html então você mesmo saberá qual é mais viável utilizar em cada tela, lembrando que todos os contêiners (JFrame, JPanel…) podem usar, assim você pode “combinar” vários deles e construir suas telas.

:thumbup:

Criado 29 de abril de 2012
Ultima resposta 29 de abr. de 2012
Respostas 3
Participantes 2