2011-12-14 35 views
5

Tôi có một JComboBox (trong số các thành phần khác) bên trong một JPopupMenu. Nó chỉ ra rằng bất cứ khi nào tôi mở popup hộp combo (để chọn một mục), JPopupMenu cha mẹ đóng lại. Tôi đã cố gắng tìm cách để ghi đè lên tính năng này, không có kết quả.JPopupMenu đóng khi popup con mở ra

Có ai có bất kỳ đề xuất nào để ngăn đóng cửa JPopupMenu gốc không? Cảm ơn!

Trả lời

4

rằng không thể thực hiện trực tiếp, nó rất khó để ghi đè lên tiếng bug, trong tay khác Swing không cho phép hai thành phần cửa sổ bật lên lightwieght trong cùng một thời gian

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()); 
      } 
     }); 
    } 
} 

nhưng workaround là rất đơn giản sử dụng JWindows hoặc un-trang trí JDialog với JComboBox thay vì JPopup

+0

Thật không may, tôi nghĩ bạn là chính xác. Tôi sẽ cần phải tìm một thành phần phù hợp để sử dụng (ngoài JComboBox). – Sam

+0

hmmm bạn có nghe thấy yout AutoCompleted JTextField http://stackoverflow.com/a/7255918/714968 – mKorbel

Các vấn đề liên quan