Seqüência de telas em Java, dentro do mesmo JFrame não existe?

6 respostas
I

Olá turma, bom dia. Minha pergunta de hoje é simples e rápida: Não é possível fazer dentro de um mesmo JFrame uma seqüência de telas (JPanel’s que vão sendo trocados) com botões de navegação “voltar e avançar” para poder navegar entre as telas, não é verdade? O correto é cada tela abrir em um JFrame individual e conforme a tela seguinte não servir mais, ela simplesmente deve abrir uma nova tela com novo JFrame ou então fechar o JFrame atual e exibir o que estava anteriormente, estou certa?

Obrigada!! Aguardo respostas…
Bom dia a todos, bom trabalho :smiley:

6 Respostas

JhowTroMundo

Errado.

Pesquise sobre CardLayout. É exatamente o que você precisa.

fernandopaiva

Nao entendi muito bem o q vc precisa…Mas existe alguns tipos de telas como JFrame/JDialog/JInternalFrame etc. O JPanel é um container q possui a propriedade de armazenar componentes como JLabel, JText, JCombo etc…
Sobre navegar entre registros, como o de banco de dados por exemplo, vc pode usar metodos do proprio ResultSet como next(); last(); etc… !

Não entendi muito bem sua duvida, entaum explique-se melhor.

t+ e boa sorte.

I

Oi meninos, obrigada pela resposta. Realmente não me expressei bem e acabei causando uma interpretação diferente do problema.

Imaginem assim: O método main() instancia um JFrame e em seguida instancia uma classe cujo um dos métodos retorna um JPanel.

public static void main(String args[]) {
   JFrame janela = new JFrame(new FlowLayout());
   ConteudoPainel cp = new ConteudoPainel();
   container.add(cp.mostraPainel());
}

Até aí, ok. Vai exibir a JFrame com o painel dentro. Só que em determinado momento, o usuário vai clicar em um botão “avançar” onde esse painel vai sumir do JFrame e dar lugar a um próximo. Seria isso. Só que isso é impossível! :roll:

Obrigada pela ajuda!! Aguardo pelas respostas…

E

O que vc precisa não é o que o JhowTroMundo citou? CardLayout…

:wink:

é uma sequência de panels

Evandro

L

Dá uma olhada se é isso que vc esta tentando fazer.....

public class CardLayoutDemo extends Frame implements ActionListener{   

    private Panel cards;   
    private Button bPrim, bAnt, bProx, bUlt;   
  
    public CardLayoutDemo(){   
  
        super("CardLayoutDemo Demo");   
  
        setSize(300,200);   
  
        Panel p1 = new Panel();   
        p1.setBackground(SystemColor.control);   
  
        Panel p2 = new Panel();   
        p2.setBackground(SystemColor.control);   
        p2.setLayout(new GridLayout(4, 1, 5, 5));   
  
        p2.add(bPrim = new Button("Primeiro"));   
        bPrim.addActionListener(this);   
  
        p2.add(bAnt = new Button("Anterior"));   
        bAnt.addActionListener(this);   
  
        p2.add(bProx = new Button("Próximo"));   
        bProx.addActionListener(this);   
  
        p2.add(bUlt = new Button("Último"));   
        bUlt.addActionListener(this);   
  
        p1.add(p2);   
        add("East", p1);   
  
        cards = new Panel();   
        cards.setLayout(new CardLayout());   
        cards.add(new Label("Primeiro Painel"), "C1");   
        cards.add(new TextArea(), "C3");   
  
        p2 = new Panel();   
        p2.setBackground(SystemColor.control);   
        p2.add(new Label("Quarto Painel"));   
        cards.add(p2, "C4");   
  
        p2 = new Panel();   
        p2.setBackground(Color.lightGray);   
        cards.add(p2, "C5");   
  
        add("Center", cards);   
  
    }   
  
    public void actionPerformed(ActionEvent e){   
  
        CardLayout c1 = ((CardLayout)cards.getLayout());   
  
        if( e.getSource() == bPrim )   
            c1.first(cards);   
        else   
            if( e.getSource() == bAnt )   
                c1.previous(cards);   
            else   
                if( e.getSource() == bProx )   
                    c1.next(cards);   
                else   
                    c1.last(cards);   
  
    }   
  
    public static void main(String args[]){   
  
        CardLayoutDemo f = new CardLayoutDemo();   
  
       f.show();   
  
    }   
  
}
I

Olá meninos, obrigada. É praticamente isso mesmo :smiley:

Obrigada, até +

Criado 24 de outubro de 2011
Ultima resposta 25 de out. de 2011
Respostas 6
Participantes 5