新聞中心
java怎么讓按鈕跟著鼠標(biāo)移動(dòng)
前提:你容器使用的布局需要null,這樣你容器上其它組件都需要自己控制大小和位置了。
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的都安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
問(wèn)題:你需要顯示的鼠標(biāo)坐標(biāo)是基于屏幕還是容器還是窗口還是按鈕?
給你個(gè)簡(jiǎn)單的顯示鼠標(biāo)基于窗口坐標(biāo)的例子,鼠標(biāo)坐標(biāo)顯示在窗口標(biāo)題欄上。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class TraceMouse extends JFrame{
JButton btnTrace;
boolean showMousePosition;
Insets insets;
public TraceMouse(){
setSize(640,480);
setLayout(null);
btnTrace=new JButton("點(diǎn)我顯示鼠標(biāo)坐標(biāo)");
btnTrace.setSize(btnTrace.getPreferredSize());
add(btnTrace);
btnTrace.addMouseMotionListener(new MouseMotionListener(){
public void mouseDragged(MouseEvent e){
Point position=getMousePosition();
btnTrace.setLocation(position.x-insets.left-btnTrace.getWidth()/2,position.y-insets.top-btnTrace.getHeight()/2);
TraceMouse.this.setTitle(String.format("當(dāng)前鼠標(biāo)坐標(biāo)為:(%1$d,%2$d)",position.x,position.y));
}
public void mouseMoved(MouseEvent e){
Point position=getMousePosition();
btnTrace.setLocation(position.x-insets.left-btnTrace.getWidth()/2,position.y-insets.top-btnTrace.getHeight()/2);
}
});
addMouseListener(new MouseAdapter(){
public void mouseEntered(MouseEvent e){
Point position=getMousePosition();
btnTrace.setLocation(position.x-insets.left-btnTrace.getWidth()/2,position.y-insets.top-btnTrace.getHeight()/2);
}
});
setVisible(true);
insets=getInsets();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public static void main(String[] args){
new TraceMouse();
}
}
小弟菜鳥(niǎo)一枚java鼠標(biāo)跟隨問(wèn)題,我想讓下面代碼在鼠標(biāo)“快速”移動(dòng)時(shí)畫(huà)完整的線(xiàn),不是斷斷續(xù)續(xù)的喲!
import?java.awt.Color;
import?java.awt.Graphics;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseMotionAdapter;
import?javax.swing.JFrame;
public?class?MouseDrawLine?extends?JFrame?{
int?x,?y;
int?endX,?endY;
public?MouseDrawLine()?{
addMouseListener(new?MouseAdapter()?{
//鼠標(biāo)下壓事件
@Override
public?void?mousePressed(MouseEvent?e)?{
x?=?e.getX();
y?=?e.getY();
}
//鼠標(biāo)彈起事件
@Override
public?void?mouseReleased(MouseEvent?e)?{
System.out.println("鼠標(biāo)彈起事件");
}
});
addMouseMotionListener(new?MouseMotionAdapter()?{
//鼠標(biāo)下壓移動(dòng)事件
@Override
public?void?mouseDragged(MouseEvent?e)?{
Graphics?g?=?getGraphics();
g.setColor(Color.BLACK);
endX?=?e.getX();
endY?=?e.getY();
g.drawLine(x,?y,?endX,?endY);
x?=?endX;
y?=?endY;
}
});
setSize(600,?500);
setLocation(200,100);
setVisible(true);
setDefaultCloseOperation(3);
}
public?static?void?main(String[]?args)?{
new?MouseDrawLine();
}
}
如何用JAVA編一個(gè) 鼠標(biāo)在在屏幕上移動(dòng)的 并點(diǎn)擊的 程序?
樓主提問(wèn)的水平很高啊,題目的要求都沒(méi)有,如何回答。。。
相關(guān)類(lèi)都在
import java.awt.*;
import javax.swing.* ;
動(dòng)作事件相關(guān)類(lèi)在import java.awt.event.*;中,在代碼頭import就可以看了
給一個(gè)相關(guān)的代碼吧,包括所有的鼠標(biāo)事件。
下面代碼包括
按下,釋放,進(jìn)入?yún)^(qū)域,離開(kāi)區(qū)域,點(diǎn)擊 這5個(gè)事件
鼠標(biāo)的相關(guān)事件會(huì)在窗口上方的文本區(qū)顯示。。。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestMouseEvent extends JFrame implements MouseListener{
JPanel jp = new JPanel();
JTextField jtf = new JTextField();
public TestMouseEvent(){
setTitle("Mouse Event");
getContentPane().add(jtf,BorderLayout.NORTH);
getContentPane().add(jp,BorderLayout.CENTER);
jp.addMouseListener(this);
}
public static void main(String[] args){
TestMouseEvent frame = new TestMouseEvent();
frame.setSize(200,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mousePressed(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠標(biāo)在坐標(biāo)"+"("+x+","+y+")"+"出按下";
jtf.setText(s);
}
public void mouseReleased(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠標(biāo)在坐標(biāo)"+"("+x+","+y+")"+"出釋放";
jtf.setText(s);
}
public void mouseClicked(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠標(biāo)在坐標(biāo)"+"("+x+","+y+")"+"出點(diǎn)擊";
jtf.setText(s);
}
public void mouseEntered(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠標(biāo)在坐標(biāo)"+"("+x+","+y+")"+"出進(jìn)入";
jtf.setText(s);
}
public void mouseExited(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠標(biāo)在坐標(biāo)"+"("+x+","+y+")"+"出離開(kāi)";
jtf.setText(s);
}
}
文章標(biāo)題:鼠標(biāo)跟隨java代碼 java 移動(dòng)鼠標(biāo)
當(dāng)前鏈接:http://www.ef60e0e.cn/article/dosioos.html