2013-04-16 4 views
0

Я хочу, чтобы панель расширялась и отображала кнопки и прочее, когда мышь зависала, тогда мышь apon, выходящая из панели, должна возвращать верхний оригинальный размер. До сих пор я могу только напечатать сообщение:Как сменить панель с помощью мышки?

public JPanel GUI() 
{ 
    final JPanel totalGUI = new JPanel(); 
    totalGUI.setBackground(Color.blue); 
    totalGUI.setLayout(null); 


    //+++++++++++++++ 
    // - - - - - - PANEL 1! 
    //+++++++++++++++  

    JPanel SearchPanel = new JPanel(); //Create new grid bag layout 
    SearchPanel.setLocation(5, 5); 
    SearchPanel.setSize(420, 120); 
    totalGUI.add(SearchPanel); 

    SearchPanel.addMouseListener(this); 


    return totalGUI; 
} 

public void mouseEntered(MouseEvent e) { 
     System.out.print("Mouse entered"); 
    } 
public void mouseExited(MouseEvent e) { 
     System.out.print("Mouse exited"); 
    } 

private static void createAndShowGUI() 
{ 
    JFrame.setDefaultLookAndFeelDecorated(true); 
    JFrame frame = new JFrame("RWB"); 

    gay3 demo = new gay3(); 
    frame.setContentPane(demo.GUI()); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setResizable(false); 
    frame.setSize(650, 500);  
    frame.setVisible(true); 

} 

public static void main(String[] args) 
{ 
    createAndShowGUI(); 
} 
+1

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

+0

'gay3 demo = new gay3();' Приятно видеть, что вы пишете (тройной) счастливый код. –

+1

Вы пытались вызвать e.getSource() в методах mouseEntered и mouseExited? –

ответ

0

Вы можете сделать это внутри методов mouseEntered и mouseExited:

JPanel source = (JPanel)e.getSource(); 
//Edit the searchPanel here 

Если searchPanel не единственный компонент, который использует этот MouseListener, вы можете сначала необходимо проверить, действительно ли источник является экземпляром JPanel:

Object o = e.getSource(); 
if(o instanceof JPanel) { 
    JPanel source = (JPanel)o; 
    //Edit the searchPanel here 
} 

Это не обязательно, если вы знаете, что источником является JPanel.

+0

, но mouse_events могут быть использованы JComponent в JPanel – mKorbel

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