2014-02-10 3 views
-1

이전 게시물이 엉망 이었기 때문에 이번에 다시 게시하기로 결정 했으므로 이번에는 훨씬 더 깔끔하게 정리했습니다.mouseLIstener JPanel/JDialog에서 "작동하지 않음"

그래서 여기에 내가 함께 작동하도록 노력하고있어 코드 :

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

public class sample extends JFrame implements ActionListener, MouseListener 
{ 
     JButton b1, b2; 
     JPanel panel1; 
     JDialog dialog; 


public sample() 
{ 
    dialog = new JDialog(); 
    dialog.setBounds (0,0,200,200); 

    panel1 = new JPanel(); 
    panel1.setLayout (new FlowLayout()); 

    b1 = new JButton("B1"); 
    add(b1); 
    b1.addActionListener (this); 
    b1.addMouseListener (this); 

    b2 = new JButton ("B2"); 
    panel1.add(b2); 
    b2.addMouseListener (this); 
    dialog.add(panel1); 

      /* I tried this but it didn't work as well: 
      dialog.addMouseListener(this); 
      panel1.addMouseListener(this); */ 
    } 

    public void actionPerformed (ActionEvent e) 
    { 
    if (e.getSource() == b1) 
     { 
      dialog.setVisible (true); 
     } 
    } 

    public void mouseClicked (MouseEvent e) 
    { 

    } 
    public void mouseEntered (MouseEvent e) 
    { 
     setCursor (new Cursor (Cursor.HAND_CURSOR)); 
    } 
    public void mouseExited (MouseEvent e) 
    { 
     setCursor (new Cursor(Cursor.DEFAULT_CURSOR)); 
    } 
    public void mousePressed (MouseEvent e) 
    { 
    } 
    public void mouseReleased (MouseEvent e) 
    { 
    } 

    public static void main (String[] args) { 
    sample s = new sample(); 
    s.setVisible (true); 
    s.setBounds (0,0,200,200); 
} 
} 

사용자가 B2 가리킬 때 커서가 손 모양의 커서로 변경하지만, 그렇지 않은 내 목표는. 내가 무엇이 누락 되었습니까? 다음에

+0

* 내 이전 게시물이 엉망 이었기 때문에 "나는 결정 t을 그것을 재 게시하십시오 "*하지 마! 대신 원래 게시물을 편집 *하십시오. –

+0

@AndrewThompson 나는 이미 그것을 삭제했다. – user3026693

+0

글쎄, 잘하면 그 하향 투표는 미래에 그렇게하지 않도록 상기시켜 줄 것이다. 그리고 편집하기 전의 이전 성명과는 달리, 특별히 관련성이없는 경우에도 대답이 *있었습니다. 또한 많은 도움이되는 조언이있었습니다. 질문을 삭제하도록 선택할 수 있지만 ** 복원 할 수도 있습니다 ** ** –

답변

3

귀하의 문제 : 사용할 필요가 없습니다

당신은 ((JComponent)e.getSource()).setCursor (new Cursor (Cursor.HAND_CURSOR)); 그것을 위해 또한

에 버튼을 변화 setCursor (new Cursor (Cursor.HAND_CURSOR));에 커서를 설정, JButton에하지, sample 예 (JFrame)에 커서를 설정 목적 MouseListener 당신은 사용할 수 있습니다

b1.setCursor(new Cursor (Cursor.HAND_CURSOR));

+0

감사합니다! GUI에 익숙하지 않아 도움이 정말 감사합니다! 감사! – user3026693

+0

정확한 버튼 자체가 아닌 'JButton'이 왜 그런지 물어볼 수 있습니까? 그렇게 쉬운가? 각 단추를 반복해서 지정하지 않아도됩니까? :) – user3026693

+0

당신의 생각을 잡을 수 없다 = (.이 커서를 모든 버튼의 기본값으로 설정 하시겠습니까? – alex2410