Layout swing

5 respostas
Fabricio_maia

Oi galera sou novo no grupo to estudando java e tem um projeto para desenvolver.
quero fz um layout da seguinte forma tenho um JFrame nesse quero colocar um JMenuBar mas eu quero que quando eu clicar em um menu o JFrame exiba uma aba com o conteudo do menu e quando eu clicar em outro menu a aba anterior seja removida e uma nova aba seja exibida

5 Respostas

kicolobo

Da uma olhada no CardLayout. Vai te ajudar bastante. (java.awt.CardLayout)

Fabricio_maia

eu queria fz com JTabbedPane

kicolobo

Da uma olhada aqui: http://download.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html

E
package guj;

import java.awt.BorderLayout;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class ExemploAbas extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel jContentPane = null;
    private JMenuBar mnubarMain = null;
    private JMenu mnuPrincipal = null;
    private JMenuItem mniFirstTab = null;
    private JMenuItem mniSecondTab = null;
    private JTabbedPane tbpTabs = null;
    private JPanel pnlFirst = null;
    private JPanel pnlSecond = null;
    private JLabel lblFirst = null;
    private JTextField txtSecond = null;

    private JMenuBar getMnubarMain() {
        if (mnubarMain == null) {
            mnubarMain = new JMenuBar();
            mnubarMain.add(getMnuPrincipal());
        }
        return mnubarMain;
    }

    private JMenu getMnuPrincipal() {
        if (mnuPrincipal == null) {
            mnuPrincipal = new JMenu();
            mnuPrincipal.setText("Choose Tabs");
            mnuPrincipal.setMnemonic(KeyEvent.VK_C);
            mnuPrincipal.add(getMniFirstTab());
            mnuPrincipal.add(getMniSecondTab());
        }
        return mnuPrincipal;
    }

    private JMenuItem getMniFirstTab() {
        if (mniFirstTab == null) {
            mniFirstTab = new JMenuItem();
            mniFirstTab.setText("First Tab (1)");
            mniFirstTab.setMnemonic(KeyEvent.VK_1);
            mniFirstTab.addActionListener(new java.awt.event.ActionListener() {

                public void actionPerformed(java.awt.event.ActionEvent e) {
                    tbpTabs.setSelectedComponent(pnlFirst);
                }
            });
        }
        return mniFirstTab;
    }

    private JMenuItem getMniSecondTab() {
        if (mniSecondTab == null) {
            mniSecondTab = new JMenuItem();
            mniSecondTab.setText("Second Tab (2)");
            mniSecondTab.setMnemonic(KeyEvent.VK_2);
            mniSecondTab.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    tbpTabs.setSelectedComponent(pnlSecond);
                }
            });
        }
        return mniSecondTab;
    }

    private JTabbedPane getTbpTabs() {
        if (tbpTabs == null) {
            tbpTabs = new JTabbedPane();
            tbpTabs.addTab("First", null, getPnlFirst(), "First Panel");
            tbpTabs.addTab("Second", null, getPnlSecond(), "Second Panel");
        }
        return tbpTabs;
    }

    private JPanel getPnlFirst() {
        if (pnlFirst == null) {
            lblFirst = new JLabel();
            lblFirst.setText("First Panel Contents");
            lblFirst.setHorizontalTextPosition(SwingConstants.CENTER);
            lblFirst.setHorizontalAlignment(SwingConstants.CENTER);
            pnlFirst = new JPanel();
            pnlFirst.setLayout(new BorderLayout());
            pnlFirst.add(lblFirst, BorderLayout.CENTER);
        }
        return pnlFirst;
    }

    private JPanel getPnlSecond() {
        if (pnlSecond == null) {
            pnlSecond = new JPanel();
            pnlSecond.setLayout(new BorderLayout());
            pnlSecond.add(getTxtSecond(), BorderLayout.CENTER);
        }
        return pnlSecond;
    }

    private JTextField getTxtSecond() {
        if (txtSecond == null) {
            txtSecond = new JTextField();
            txtSecond.setText("Second Panel Contents");
        }
        return txtSecond;
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                ExemploAbas thisClass = new ExemploAbas();
                thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                thisClass.setVisible(true);
            }
        });
    }

    public ExemploAbas() {
        super();
        initialize();
    }

    private void initialize() {
        this.setSize(300, 200);
        this.setJMenuBar(getMnubarMain());
        this.setContentPane(getJContentPane());
        this.setTitle("Exemplo Abas");
    }

    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jContentPane = new JPanel();
            jContentPane.setLayout(new BorderLayout());
            jContentPane.add(getTbpTabs(), BorderLayout.CENTER);
        }
        return jContentPane;
    }

}


Fabricio_maia

vlew cara me ajudou muito :slight_smile:

Criado 12 de novembro de 2010
Ultima resposta 12 de nov. de 2010
Respostas 5
Participantes 3