アプリ版:「スタンプのみでお礼する」機能のリリースについて

javaを勉強中の者です。
座標の値をクリックした際にテキストファイルに出力したいのですが、どうしてもうまくできません。

調べてはいるのですが、わかりませんでした。
javaに詳しい方がいらっしゃれば、ご教示ください。

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class clickpoint extends JFrame implements MouseMotionListener, MouseListener {

JLabel label;
JPanel panel;

public static void main(String args[]) {
clickpoint MF = new clickpoint();
MF.setSize(300, 320);
MF.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); };
});

MF.setTitle("Click Point");
MF.setVisible(true);
};

clickpoint() {
panel = new JPanel();
panel.addMouseMotionListener(this);
panel.setBackground(Color.green);
label = new JLabel("座標を指定");
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().add(label, BorderLayout.PAGE_END);
}

public void mouseMoved(MouseEvent e) {
Point point = e.getPoint();
label.setText("x:" + point.x + ",y:" + point.y);
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseDragged(MouseEvent e) {}

public void mouseClicked(MouseEvent ec) {
try {
File OF = new File("d:\\zahyou.txt");
FileWriter FW = new FileWriter(OF, true);
FW.write(MakeData(ec.getX(), ec.getY()));
FW.close();
} catch (Exception ex) { System.out.println(ex.toString()); System.exit(0); };
};

String MakeData(int x, int y) {
String LS = System.getProperty("line.separator");
StringBuffer s = new StringBuffer();
s.append(x * 100 / getWidth() + ",90,0,");
s.append(y * 100 / getHeight());
s.append(LS);
return(s.toString());
}
}

A 回答 (1件)

panel.addMouseMotionListener(this);はあるのに、なぜかpanel.addMouseListener(this);がないから。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!