Menu com Combobox

Boa tarde galera!
primeiro… estou duplicando esse topico, pois acho que tinha postado no lugar errado :frowning:

Seguinte… estou add um combobox no menu do MDI, porém percebi quando acesso o combobox ao dar um clique na combo os itens do menu e submenu do MDI desaparece.

a minha ideia é ter um menu que acesso uma combo, mas enquanto estou selecionando o item da combo deve manter visivel o menu e/ou submenu referente a combobox.

veja o exemplo

[code]import javax.swing.*;
public class Combo extends JFrame {
JDesktopPane desktop;

public Combo() {
JMenuBar barra = new JMenuBar();
JMenu tec = new JMenu(“Tecnologia”);
JMenu gsm = new JMenu(“GSM”);
JComboBox cbgsm = new JComboBox();
cbgsm.addItem(“modelo1”);
cbgsm.addItem(“modelo2”);
cbgsm.addItem(“modelo3”);
cbgsm.addItem(“modelo4”);
gsm.add(cbgsm);
tec.add(gsm);

barra.add(tec);
setJMenuBar(barra);

desktop = new JDesktopPane();//crio obj
setContentPane(desktop);// configuro como mdi
setExtendedState(MAXIMIZED_BOTH);
setVisible(true);

} [/code]

public static void main(String args[]){ Combo app = new Combo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
estou usando eclipse

Como posso acessar os itens da combox sem desaparecer o menu que acessa a combo?

caso nao esteja claro favor rodem esse exemplo e perceberam

Você pode começar usando uma das boas práticas do fórum: Deixar o seu código formatado com as tags code.

Se ainda não sabe fazer isso, leia esse tópico aqui:
http://www.guj.com.br/posts/list/50115.java

Normalmente, não se usa ComboBoxes em menus. Abra uma janela externa (se forem muitos itens) ou use RadioButtonMenuItem, como no exemplo abaixo:

[code]
import javax.swing.ButtonGroup;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JRadioButtonMenuItem;

public class Combo extends JFrame
{
private JDesktopPane desktop;

public Combo() {
    JMenuBar barra = new JMenuBar();
    JMenu tec = new JMenu("Tecnologia");
    JMenu gsm = new JMenu("GSM");
    ButtonGroup bgModelo = new ButtonGroup();
    for (int i = 1; i < 5; i++) {
        JRadioButtonMenuItem miRadio = new JRadioButtonMenuItem("modelo" + i);
        gsm.add(miRadio);
        bgModelo.add(miRadio);
    }
    
    tec.add(gsm);

    barra.add(tec);
    setJMenuBar(barra);

    desktop = new JDesktopPane();// crio obj
    setContentPane(desktop);// configuro como mdi
    setExtendedState(MAXIMIZED_BOTH);
    setVisible(true);

}

public static void main(String args[]) {
    Combo app = new Combo();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}[/code]

(Note como fica melhor o código usando a tag code!)

ViniGodoy
obrigado pela dica :wink:

a questao de eu precisar um combobox é eu carregos os itens de uma tablea, assim fica facilde atualizar o menu do meu MDI.

nessa combo tem mais de 30 itens :frowning:

como posso agrupar o combo com menu, talvez assim aquand visualizar o combo nao desapareça o menu.

tem outra sugestao?

Abra uma Dialog separada. De qualquer forma, menus com combos não são uma coisa muito comum nos ambientes de janelas por aí.

Bom vou continuar na pesquisa, no meu caso irei precisar mesmo :?

o que eu percebi que no JMenuItem temos o RadioButton e CheckButton, mas nao Combobox item de um menu.

entao pensei…
existe uma maneira de grupar dois componentes?

no meu caso seria JMenu + JComboBox

qq sugestao agradeço.

Tks!

Outra sugestão seria vc fazer um menu estilo os de arquivo.

Você mostra os 5 últimos valores e uma opção "outro…"
Se o cara clicar nessa opção, você mostra uma dialog com a combobox.

Eu geralmente evito construir componentes na mão, embora já tenha feito isso. Geralmente a dor de cabeça é grande demais para manter esse componente funcionando depois. E dificilmente o seu usuário ficará insatisfeito com uma solução ligeiramente diferente.

Especialmente porque isso não existe no Windows e sempre se pode alegar que isso seria um desenvolvimento inteiramente novo e complexo (o que não deixa de ser verdade). Mostre para ele o quanto isso custa, e acho difícil que ele esteja disposto a pagar… ou pelo menos, a não ouvir sua sugestão com muito carinho.

Quando o Swing dá abertura a personalização é uma coisa. Quando você tem que fazer no braço, tratar eventos de mouse e de teclado, é outra completamente diferente…

galera alguma outra dica?

:? :?

:?:

Pessoal será que realmente ninguem nunca passou por isso ? :cry:

No meu caso vou precisar das combos como sub menu (JMenuitem).

Ayres