1

これがコードです。JTextArea ではなくパネル内にある場合、マウスの位置が出力されます。テキスト領域にもマウスリスナーを追加しましたか? 問題は、座標が JFrame 全体で一貫していないことです。jframe全体をカバーするマウスリスナーを1つだけ持つ方法はありますか?

テキストエリアでマウスリスナーを無効にする方法はありますか?

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;


public class test extends JFrame {

public test(){
    setPreferredSize(new Dimension(600,400));
    JPanel p = new JPanel();
    p.setBackground(Color.blue);
    p.setPreferredSize(new Dimension(600,200));
    JTextArea t = new JTextArea();
    t.setPreferredSize(new Dimension(600,200));
    add(p,BorderLayout.NORTH);
    add(t,BorderLayout.SOUTH);
    pack();
    MouseInput m = new MouseInput();
    addMouseMotionListener(m);
    t.addMouseMotionListener(m);            
    setVisible(true);

}

public static void main(String[] args){
    new test();
}
public class MouseInput implements MouseMotionListener{

    @Override
    public void mouseDragged(MouseEvent e) {
    }

    @Override
    public void mouseMoved(MouseEvent e) {
        int mx = e.getX();
        int my = e.getY();
        System.out.println(mx + "," + my);          
    }       
}

}
4

3 に答える 3

1

MouseListenerアプリケーションの に を追加してみてくださいGlassPane

これらの次のリンクを参照してください。これには、やりたいことに似た Java Web Start デモが含まれています。 ルート ペインの使用方法

于 2013-07-29T22:04:18.070 に答える