Boa tarde pessoal,
estava estudando uns exercícios com layouts e me deparei com uma coisa estranha, os 2 jcombobox que coloquei na tela não abre a lista de itens quando estão gerenciados no gridbaglayout. Alguem poderia me explicar onde estou errando?
[code]package swing_testes.testes;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
/**
*
-
@author Tebo Software - Shubacca
-
@date 16/05/2009
*/
public class ReservasAereas extends JFrame {public ReservasAereas() {
setTitle(“Reservas Aéreas”);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {@Override public void windowClosing(WindowEvent e) { if (JOptionPane.showConfirmDialog(rootPane, "Fechar Janela?", "Atenção", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { System.exit(0); } } }); //Dados da Reserva DefaultComboBoxModel dcbmDestinos = new DefaultComboBoxModel(new String[]{"Franca", "Ribeirão Preto", "São Paulo"}); JPanel pnlReserva = new JPanel(new GridBagLayout()); JLabel lblData = new JLabel("Data:"); JTextField tfdData = new JTextField(); JLabel lblDe = new JLabel("De:"); final JComboBox cbxDe = new JComboBox(); cbxDe.setModel(dcbmDestinos); JLabel lblAte = new JLabel("Até:"); JComboBox cbxAte = new JComboBox(); cbxAte.setModel(dcbmDestinos); JPanel pnlOpcoes = new JPanel(new GridLayout(3, 1)); pnlOpcoes.setBorder(BorderFactory.createTitledBorder("Classe")); ButtonGroup bg = new ButtonGroup(); JRadioButton rbtPrimeiraClasse = new JRadioButton("1ª Classe", true); JRadioButton rbtSegundaClasse = new JRadioButton("2ª Classe"); JRadioButton rbtTerceiraClasse = new JRadioButton("3ª Classe"); bg.add(rbtPrimeiraClasse); bg.add(rbtSegundaClasse); bg.add(rbtTerceiraClasse); pnlOpcoes.add(rbtPrimeiraClasse); pnlOpcoes.add(rbtSegundaClasse); pnlOpcoes.add(rbtTerceiraClasse); GridBagConstraints con = new GridBagConstraints(); con.insets = new Insets(2, 2, 2, 2); pnlReserva.add(lblData, con); con.gridy = 1; pnlReserva.add(lblDe, con); con.gridy = 2; pnlReserva.add(lblAte, con); con.anchor = GridBagConstraints.CENTER; con.gridx = 1; con.gridy = 0; con.weightx = 1; con.fill = GridBagConstraints.HORIZONTAL; pnlReserva.add(tfdData, con); con.gridy = 1; pnlReserva.add(cbxDe, con); con.gridy = 2; pnlReserva.add(cbxAte, con); con.gridx = 2; con.gridy = 0; con.gridheight = 3; con.weightx = 0; con.fill = GridBagConstraints.NONE; pnlReserva.add(pnlOpcoes, con); JPanel pnlVoos = new JPanel(new BorderLayout()); pnlVoos.setBorder(BorderFactory.createTitledBorder("Voos Disponíveis")); JList lstVoos = new JList(dcbmDestinos); JScrollPane srpVoos = new JScrollPane(lstVoos); pnlVoos.add(srpVoos, BorderLayout.CENTER); JPanel pnlBotoes = new JPanel(); JButton btnBuscar = new JButton("Buscar"); btnBuscar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cbxDe.showPopup(); JOptionPane.showMessageDialog(rootPane, cbxDe.getModel().getSize()); } }); JButton btnComprar = new JButton("Comprar"); JButton btnFechar = new JButton("Fechar"); pnlBotoes.add(btnBuscar); pnlBotoes.add(btnComprar); pnlBotoes.add(btnFechar); getRootPane().setLayout(new BorderLayout()); getRootPane().add(pnlReserva, BorderLayout.NORTH); getRootPane().add(pnlVoos, BorderLayout.CENTER); getRootPane().add(pnlBotoes, BorderLayout.SOUTH); pack(); setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth()) / 2 , (Toolkit.getDefaultToolkit().getScreenSize().height - getHeight()) / 2); setVisible(true);
}
public static void main(String[] args) {
new ReservasAereas(); JFrame j = new JFrame("Teste"); j.setDefaultCloseOperation(DISPOSE_ON_CLOSE); j.add(new JComboBox(new String[]{"Teste1", "Teste2", "Teste3", "Teste4"})); j.pack(); j.setVisible(true);
}
}
[/code]
desde já agradçeo