import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;

public class MouseListenerAllEx extends JFrame {
 JPanel contentPane = new JPanel();
 JLabel la = new JLabel();
 JLabel imageLabel = new JLabel();
 JLabel op = new JLabel();
 JTextField be = new JTextField();

 MouseListenerAllEx() {
  setTitle("MouseListener와 MouseMOtionListener 예제");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setContentPane(contentPane);
  setLayout(new BorderLayout());
  contentPane.addMouseListener(new MyMouseListener());
  contentPane.addMouseMotionListener(
      new MyMouseListener());
  la = new JLabel("No Mouse Event");
  contentPane.add(la);
  
  contentPane.add(imageLabel);
  createMenu();
  
  

  
  
  setSize(300,200);
  setVisible(true);
 }
 
 
 void createMenu() {
  JMenuBar mb = new JMenuBar();
  JMenu fileMenu = new JMenu("File");
  JMenuItem openItem = new JMenuItem("열기");
  JMenuItem openItem1 = new JMenuItem("파일열기");
  openItem.addActionListener(new OpenActionListener());
  fileMenu.add(openItem);
  fileMenu.add(openItem1);
  
  
  mb.setLayout(new BorderLayout());
  mb.add(fileMenu);
  mb.add(op,BorderLayout.WEST);
  mb.add(la,BorderLayout.EAST);
  
  
  this.setJMenuBar(mb);
     be.setSize(50,150);
  contentPane.add(be,BorderLayout.SOUTH);
}

 class OpenActionListener implements ActionListener {
  JFileChooser chooser;
  
 
  OpenActionListener() {
   chooser= new JFileChooser();
  }
  public void actionPerformed(ActionEvent e) {
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
            "JPG & GIF Images", "jpg", "gif");
    be.setText("파일을 여는중입니다");
      chooser.setFileFilter(filter);
   int ret = chooser.showOpenDialog(null);
   if(ret != JFileChooser.APPROVE_OPTION) {
    JOptionPane.showMessageDialog(null, "파일을 선택하지 않았습니다",
       "경고", JOptionPane.WARNING_MESSAGE);
    return;
   }
   String filePath = chooser.getSelectedFile().getPath();
   imageLabel.setIcon(new ImageIcon(filePath));
   pack();
   
  
   File tmp = chooser.getSelectedFile();
   op.setText(chooser.getCurrentDirectory()+"/"+tmp.getName());
   
   
  }
 }

 
 class MyMouseListener implements MouseListener,
 MouseMotionListener {
public void mousePressed(MouseEvent e) {
la.setText(" ("+e.getX()+","+e.getY()+")");
}
public void mouseReleased(MouseEvent e) {
la.setText("("+e.getX()+","+e.getY()+")");
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
JPanel p = (JPanel)e.getSource();

}
public void mouseExited(MouseEvent e) {
JPanel p = (JPanel)e.getSource();
}
public void mouseDragged(MouseEvent e) {
la.setText("("+e.getX()+","+e.getY()+")");


}
public void mouseMoved(MouseEvent e) {
la.setText("("+e.getX()+","+e.getY()+")");
be.setText("마우스가 움직이는 중입니다");
}

public static void main(String [] args) {
new MouseListenerAllEx();
}
}

이소스를 실행시키면 이미지처럼나옴 .파일열기 다이얼로그랑 우측에 좌표뜨게하는 소스인데
여기에 키리스너추가해서 내가무슨키를 저 텍스트필드에 입력하면
키문자값 키코드값 키문자열값이 중앙에떠야됌 ..좀도와줄형님있음 ??넣어봐도 계속오류가떠서못하겠음
키는 꼭 텍스트필드에 넣을필요는없음