2011-12-14 43 views
5

JPopupMenuの中にJComboBox(他のコンポーネントもあります)があります。コンボボックスのポップアップを開く(アイテムを選択する)たびに、親JPopupMenuが閉じられることが分かります。私はこの機能を無効にする方法を見つけようとしてきましたが、無駄です。子ポップアップが開くとJPopupMenuが閉じる

親JPopupMenuを閉じるのを防ぐための提案はありますか?ありがとう!

答えて

4

他の手の中にスイング

import javax.swing.*; 
import java.awt.event.*; 

public class Test { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     frame.setSize(400, 400); 
     frame.setVisible(true); 
     String[] list = {"1", "2", "3", "4",}; 
     JComboBox comb = new JComboBox(list); 
     final JPopupMenu pop = new JPopupMenu(); 
     pop.add(comb); 
     frame.addMouseListener(new MouseAdapter() { 

      @Override 
      public void mousePressed(MouseEvent e) { 
       System.out.println("mousePressed"); 
       pop.show(e.getComponent(), e.getX(), e.getY()); 
      } 
     }); 
    } 
} 

同じ時間に2つのlightwieghtポップアップコンポーネントを可能にしませんが、回避策は非常に簡単な使用JWindowsであるか非飾ら直接ことはできません、bugを知らオーバーライドするために、その非常に難しいです、 JDialogJComboBoxの代わりにJPopup

+0

残念ながら、私はあなたが正しいと思います。私はJComboBox以外の適切なコンポーネントを探す必要があります。 – Sam

+0

あなたはあなたに聞こえていますか?AutoCompleted JTextField http://stackoverflow.com/a/7255918/714968 – mKorbel

関連する問題