2013-07-15 1 views
1

Я думаю, что все испортило. Я попытался создать всплывающие окна, когда MouseEntered события срабатывает. Как я могу это исправить?Показывать всплывающее окно, когда происходит событие MouseEnter

Popup p=factory.getPopup(c,null,x,y); 

Я не уверен, о параметрах

Остальной части этого кода:

public class pop extends JFrame{ 

    class mypopUpShow implements ActionListener{ 
    JComponent c; 
    // final Random random; 
public mypopUpShow(JComponent c){ 
    this.c=c; 
    } 
    @Override 
    public void actionPerformed(ActionEvent ae) { 
     Random random=new Random(); 
     int x = random.nextInt(200); 
     int y = random.nextInt(200); 
     PopupFactory factory=PopupFactory.getSharedInstance(); 
     Popup p=factory.getPopup(c,null,x,y); 
     p.show(); 
    } 
    } 
    public pop() { 
    JPanel Panel=new JPanel(); 

    final Timer t=new Timer(100, new mypopUpShow(Panel)); 
    MouseListener listener=new MouseAdapter() { 

     @Override 
     public void mouseEntered(MouseEvent me){ 
     t.start(); 
     } 
}; 
    setSize(300,300); 
    Panel.addMouseListener(listener); 

    add(Panel); 
    } 
    public static void main(String...arg){ 
    new pop().setVisible(true); 
     } 
    } 
+1

Что не работает? Опишите, что вы видите, и что вы ожидаете увидеть. –

+0

1) Используйте последовательный и логический отступ для кодовых блоков. Отступ кода предназначен для того, чтобы помочь людям понять поток программы. 2) Чтобы получить более эффективную помощь, опубликуйте [SSCCE] (http://sscce.org/). 3) Не выдвигайте раму или другие контейнеры верхнего уровня. Вместо этого создайте & используйте экземпляр одного. 4) Единственная пустая строка пробела в исходном коде * всегда * достаточно. 5) Всегда копировать/вставлять вывод ошибок и исключений. –

+0

Привет, как я сказал, я попытался создать всплывающие окна, когда mouseEntered событие works.But я получаю исключение Исключение в потоке "AWT-EventQueue-0" java.lang.IllegalArgumentException: Popup.getPopup должно быть передано ненулевое содержимое – user2583511

ответ

1

Проблема заключается в том, что вы устанавливаете параметр «содержимое» для getPopup (владельца компонента, содержания компонентов , int x, int y) до null. Вот почему вы получаете исключение IllegalArgumentException. Попробуйте изменить нуль на что-то вроде «нового JButton (« TEST »)», и вы увидите тонну всплывающих кнопок. Содержимое - это то, что вы хотите всплывать (виджет, панель, окно и т. Д.).

+0

Thank ты хороший ты отличный – user2583511