2012-06-28 5 views
2

Я бы хотел изменить поведение OOTB combobox, чтобы freeze после щелчка правой кнопкой мыши (обнаружение, нажатие кнопки было простым, так что это не так) и открыть JPopupMenu istead выбора эта запись.Открыть JPopupMenu от открытого JComboBox

Итак - как отключить выбор записи в заданном состоянии и использовать пользовательское поведение?

Я попытался начать с добавления слушателей мыши ко всем компонентам COMBOBOX, но без успеха - ничего не изменилось

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JComboBox; 
import javax.swing.JFrame; 

public class MainClass { 

    public static void main(final String args[]) { 

     final String labels[] = { "A", "B", "C", "D", "E" }; 
     JFrame frame = new JFrame("Selecting JComboBox"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JComboBox comboBox = new JComboBox(labels); 
     frame.add(comboBox, BorderLayout.SOUTH); 
     frame.setSize(400, 200); 
     frame.setVisible(true); 

     for (Component c : comboBox.getComponents()) { 
      c.addMouseListener(new MouseAdapter() { 
       public void mouseClicked(MouseEvent e) { 
        System.out.println("cli"); 
        super.mouseClicked(e); 
       } 
       public void mousePressed(MouseEvent e) { 
        System.out.println("pre"); 
        super.mousePressed(e); 
       } 
      }); 
     } 
    } 
} 
+0

, что именно вы хотите достичь при выборе значения в выпадающем списке ? –

ответ

3
  • в свинг не представляется возможным показ двух легких всплывающих контейнеров в тот же самый момент

  • пример о JComboBox popup from JPopup

  • есть грязный хак о множестве JPopup в супертяжелом

  • , но я хотел бы предложить, чтобы смешивание AWT Container с Swing JComponents и использовать AWT.Popup с Swing.JComponent (JMenuItem или JButton)

+0

+1 Я играл, и да, вы правы, безусловно, бот! –

+0

+1 для пункта 1, я не знал об этом :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^