Boa tarde!
Galera, ve se vcs podem me ajudar.
Estou com uma aplicação que funciona da seguinte forma (layout)
MENU (com opcoes 1,2 e 3)
CONTEUDO
Entao, quando eu clico na opcao 1 do menu, queria que a parte do conteudo viesse os dados relativo a essa opcao.
Mas o problema e como faço para trocar, no caso, se ele clicar em outra opcao, para atualizar somente o conteudo e deixar o menu la?
queria que fosse tipo um tiles da vida (pensando em framework mvc web). Queria sabe como faço para o menu ficar fixo la em cima e eu so atualizar lá em baixo.
Eis o código q eu estou pelejando…
package br.com.hotel.visao;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.Border;
public class ReservasHotelFrame extends JFrame implements ActionListener {
private JMenu jMenu;
private JMenuItem jmiHotel;
private JMenuItem jmiServicos;
private JMenuItem jmiApartamentos;
private JMenuItem jmiReservas;
private JMenuItem jmiSair;
private JLabel jlHotelInfo;
private GroupLayout layout;
private Border borda;
private Container container;
private javax.swing.JMenuBar jMenuBar;
public ReservasHotelFrame() {
super("::.Reservas Hotel Tulip.::");
inicializarComponentesVisao();
// Container container = this.getContentPane();
// container.removeAll();
}
public void inicializarComponentesVisao() {
inicializaMenu();
inicializaLayout();
inicializaAcoesMenu();
this.setVisible(true);
}
private void inicializaAcoesMenu() {
// Adicionando a acao para fechar tudo quando o sair for clicado.
jmiSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int opcao = JOptionPane.showConfirmDialog(null,
"Deseja realmente fechar a aplicação?", "Pergunta",
JOptionPane.YES_OPTION);
if (opcao == 0) {
System.exit(0);
}
}
});
// Adiciona a acao quando clical em O Hotel
jmiHotel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
showHotelInfo();
}
});
// Adiciona a acao quando clica em Servicos do Hotel
jmiServicos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
showServicosHotel();
}
});
}
public void showServicosHotel() {
JLabel jlServicos = new JLabel();
JLabel jlQuarto = new JLabel();
JLabel jlLavanderia = new JLabel();
JLabel jlCafe = new JLabel();
JLabel jlRestaurante = new JLabel();
JLabel jlAcademia = new JLabel();
JLabel jlSalaoJogos = new JLabel();
jlQuarto.setText("Quartos com suites, escritório e acesso a internet.");
jlLavanderia.setText("Serviços de lavanderia em geral.");
jlCafe.setText("Café da manha colonial das 06hrs até as 10hrs.");
jlRestaurante
.setText("Restaurante interno até as 00:00 de segunda a segunda");
jlAcademia.setText("Sala de musculação e Exercicios cardiovasculares");
jlSalaoJogos.setText("Salão de Jogos com mesas de sinuca e cartas");
container = this.getContentPane();
container.setVisible(false);
Container containerServicos = new Container();
containerServicos.setLayout(new GridLayout(7, 1));
containerServicos.add(jlQuarto);
containerServicos.add(jlLavanderia);
containerServicos.add(jlCafe);
containerServicos.add(jlRestaurante);
containerServicos.add(jlAcademia);
containerServicos.add(jlSalaoJogos);
this.setContentPane(containerServicos);
trocaContainer(container, containerServicos);
this.setVisible(true);
}
public void showHotelInfo() {
JLabel jlEndereco;
container = this.getContentPane();
Container c = new Container();
c.setLayout(new BorderLayout());
jlHotelInfo = new JLabel();
jlHotelInfo.setIcon(new ImageIcon("icones/hotel.jpg"));
jlHotelInfo.setHorizontalAlignment(SwingConstants.HORIZONTAL);
jlHotelInfo.setHorizontalTextPosition(SwingConstants.CENTER);
jlHotelInfo.setVerticalTextPosition(SwingConstants.BOTTOM);
jlEndereco = new JLabel("90 Everett Av. Chelsea MA - Boston - EUA");
jlEndereco.setHorizontalAlignment(SwingConstants.HORIZONTAL);
jlEndereco.setHorizontalTextPosition(SwingConstants.CENTER);
jlEndereco.setVerticalTextPosition(SwingConstants.BOTTOM);
Font font = new Font("SansSerif", Font.BOLD, 14);
Font font2 = new Font("Verdana", Font.BOLD, 14);
jlEndereco.setFont(font2);
jlHotelInfo.setText("Hotel Tulip Inn");
jlHotelInfo.setFont(font);
jlHotelInfo.setForeground(Color.BLUE);
c.add(jlHotelInfo, BorderLayout.NORTH);
c.add(jlEndereco, BorderLayout.SOUTH);
this.setContentPane(c);
this.remove(container);
// this.setContentPane(c);
trocaContainer(container, c);
}
/**
* Faz a inicialização do Layout
*/
private void inicializaLayout() {
// Define o tamanho da tela.
this.setSize(800, 800);
// Coloca para a janelia do JFrame ficar centralizada no monitor
setLocationRelativeTo(null);
/*
* Adiciona tratamento para questionar a saida do programa quando clica
* em X
*/
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
int opcao = JOptionPane.showConfirmDialog(null,
"Deseja realmente fechar a aplicação?", "Pergunta",
JOptionPane.YES_OPTION);
if (opcao == 0) {
System.exit(0);
}
}
public void windowOpened(WindowEvent arg0) {
// System.out.println("windowOpened");
}
public void windowClosed(WindowEvent arg0) {
// System.out.println("windowClosed");
}
public void windowIconified(WindowEvent arg0) {
// System.out.println("windowIconified");
}
public void windowDeiconified(WindowEvent arg0) {
// System.out.println("windowDeiconified");
}
public void windowActivated(WindowEvent arg0) {
// System.out.println("windowActivated");
}
public void windowDeactivated(WindowEvent arg0) {
// System.out.println("windowDeactivated");
}
});
}
/**
* Inicializa itens do menu.
*/
private void inicializaMenu() {
jMenuBar = new JMenuBar();
jmiHotel = new JMenuItem("Hotel");
jmiServicos = new JMenuItem("Serviços do Hotel");
jmiApartamentos = new JMenuItem("Tipos de Apartamentos");
jmiReservas = new JMenuItem("Reserva de Apartamentos");
jmiSair = new JMenuItem("Sair");
jMenu = new javax.swing.JMenu("Menu Principal");
// Criando uma fonte
Font arialBold12 = new Font("arial", Font.BOLD, 12);
jmiHotel.setFont(arialBold12);
jmiServicos.setFont(arialBold12);
jmiApartamentos.setFont(arialBold12);
jmiReservas.setFont(arialBold12);
jmiSair.setFont(arialBold12);
// Criando uma cor
Color colorRed = new Color(255, 51, 0);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jMenu.setMnemonic('M');
jmiHotel.setMnemonic('H');
jmiServicos.setMnemonic('S');
jmiReservas.setMnemonic('R');
jmiApartamentos.setMnemonic('T');
jMenu.add(jmiHotel);
jMenu.add(jmiServicos);
jMenu.add(jmiApartamentos);
jMenu.add(jmiReservas);
jMenu.addSeparator();
jMenu.add(jmiSair);
// Adiciona o Menu ao MenuBar
jMenuBar.add(jMenu);
setJMenuBar(jMenuBar);
}
/**
* Quando um evento é acionado, esse metodo é executado
*
* @param e
*/
public void actionPerformed(ActionEvent e) {
System.out.println(e.getSource());
}
public static void main(String args[]) {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
try {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
break;
}
}
ReservasHotelFrame s = new ReservasHotelFrame();
// s.criaJanela();
}
public void trocaContainer(Container containerEsconder,
Container containerMostrar) {
containerEsconder.setVisible(false);
containerMostrar.setVisible(true);
}
}
Obrigado!