[RESOLVIDO]Como criar + de um Frame

7 respostas
Furyeyes

Olá Galera, sou iniciante Java, e estou com uma dúvida:
Tenho um programa onde tenho um Frame, quero criar mais um, ai que vem a dúcida, preciso criar outra classe, ou dá criar outro 2 Frames na mesma classe...Sei que a pergunta parece besta, mas é uma dúvida

Olá galera, estou com uma dúvida referente a JFrames
Vou fazer um programa com uma tela inicial e 3 botões, quando o usuário clicar em um botão quero que apareça outro Frame, minha dúvida é, eu tenho que criar uma classe para cada Frame dos botões!?

Se puderem me ajudar fico Grato

:D

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Telas extends JFrame implements ActionListener 
   {
	
	public Telas(){
		
		JButton b1 = new JButton("Cadastrar");
		JButton b2 = new JButton("Consultar");
		
		
		setTitle("Cadastro Hóspede");//Título da tela
		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
		b1.setBounds(470, 285, 90, 30);//(x, y, largura, altura)
		b2.setBounds(470, 325, 90, 30);
		getContentPane().add(b1);
		getContentPane().add(b2);
		
	}
	
	public static void main(String []args){
		
		JFrame Janela = new Telas();
		Janela.setVisible(true);
	}

O programa esta assim porque estou começando a implementa-lo, mas fiquei com essa dúvida ai

7 Respostas

InicianteJavaHenriqu

Olá Furyeyes :D

O ideal é criar cada JFrame em classes separadas, porém, nada impede de você criar múltiplos JFrames em uma única classe, assim:

public class Telas extends JFrame implements ActionListener {

private JFrame tela1 = new JFrame("Tela 1");
private JFrame tela2 = new JFrame("Tela 1");
private JFrame tela3 = new JFrame("Tela 1");

}

Para utilizar o JFrame estendido use super e para os demais seus respectivos nomes tela1, tela2, tela3...

:thumbup:

Furyeyes
Entendi, mas me ajuda mais um pouco rs.... Estou implementando mas esta dando erro, só analiza ai o código e me diz oque estou errando por favor :wink:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Telas  //implements ActionListener 
   {
	 private JFrame telaCliente = new JFrame("CadastroCliente");
	 private JFrame telaFunc = new JFrame("Funcionário");
	 private JFrame telaFornec = new JFrame("Fornecedores");
	 private JFrame telaHome = new JFrame("The Julia's Hotel");
	
			
		JButton b1 = new JButton("Hospedagem");
		JButton b2 = new JButton("Funcionários");
		JButton b3 = new JButton("Fornecedores");	
		
		telaHome.setSize(1025,600);//Tamanho da tela  (Largura / Comprimento)
		telaHome.setResizable(false);//Não pode redimensionar
		telaHome.getContentPane().setBackground(new Color(0,0,0));//Cor de fundo
		telaHome.getContentPane().setLayout(null);//Sem Gerenciador de Layout
		b1.setBounds(470, 285, 90, 30);//(x, y, largura, altura)
		b2.setBounds(470, 325, 90, 30);
		telaHome.getContentPane().add(b1);
		telaHome.getContentPane().add(b2);
		
	
	 
	
	public static void main(String []args){
		
		
		telaHome.setVisible(true);
	}
	

}

Valeuuuu

InicianteJavaHenriqu

Post o erro, fica mais fácil para visualizar.

Furyeyes

Putz acontece o seguinte, eu criei os Frames na mesma classe como você mostrou, mas como faço para mostrar só o Frame “telaHome”, e ai consequentemente eu vou criar os eventos para os botões acessarem os outro Frames…
Tô fazendo mó lambança

Aqui eu crio os Frames

public class Telas extends JFrame //implements ActionListener { private JFrame telaCliente = new JFrame("CadastroCliente"); private JFrame telaFunc = new JFrame("Funcionário"); private JFrame telaFornec = new JFrame("Fornecedores"); private JFrame telaHome = new JFrame("The Julia's Hotel");

Aqui eu inicializo o Frame telaHome, acho que é aqui que estou pecando:

public void telaHome(){ telaHome.setSize(1025,600);//Tamanho da tela (Largura / Comprimento) telaHome.setResizable(false);//Não pode redimensionar telaHome.getContentPane().setBackground(new Color(0,0,0));//Cor de fundo telaHome.getContentPane().setLayout(null);//Sem Gerenciador de Layout b1.setBounds(470, 285, 90, 30);//(x, y, largura, altura) b2.setBounds(470, 325, 90, 30); telaHome.getContentPane().add(b1); telaHome.getContentPane().add(b2); }

E por fim tento chamar o Frame telaHome, mas aparece um outro Frame default

public static void main(String []args){ Telas Janela = new Telas(); Janela.telaHome(); Janela.setVisible(true); }

Sei que estou fazendo cagada, mas estou aqui para aprender… :smiley:
Valeu

InicianteJavaHenriqu

Bom, na verdade está uma lambança mesmo, e vai piorar um pouco mais, você terá que chamar telaHome.setVisible(true); na própria classe Telas e as demais nesta mesma classe nos eventos dos botões e ainda tirá o extends JFrame da classe.

Você não gostaria de voltar atrás (esqueça aquilo que eu te encorajei de criar tudo em uma classe) e criar uma classe para cada JFrame, ficará muito melhor e você ainda estará aprendendo da maneira certa, aproveite enquanto dar tempo.

Furyeyes

[b] È isso mesmo que irei fazer, obrigado, e valeu a atenção!!!
Mais dúvidas estarei postando aqui…

Falow…[/b][size=18] [/size]

:smiley:

InicianteJavaHenriqu

Ok :smiley:

Criado 28 de abril de 2012
Ultima resposta 28 de abr. de 2012
Respostas 7
Participantes 2