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
Layout swing
5 Respostas
Da uma olhada no CardLayout. Vai te ajudar bastante. (java.awt.CardLayout)
eu queria fz com JTabbedPane
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;
}
}

vlew cara me ajudou muito 
Criado 12 de novembro de 2010
Ultima resposta 12 de nov. de 2010
Respostas 5
Participantes 3