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();
}
}
이소스를 실행시키면 이미지처럼나옴 .파일열기 다이얼로그랑 우측에 좌표뜨게하는 소스인데
여기에 키리스너추가해서 내가무슨키를 저 텍스트필드에 입력하면
키문자값 키코드값 키문자열값이 중앙에떠야됌 ..좀도와줄형님있음 ??넣어봐도 계속오류가떠서못하겠음
키는 꼭 텍스트필드에 넣을필요는없음
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.