调试编译通过了,可直接运行import javax.swing.*;
import java.awt.*;import java.awt.event.*;
import java.awt.image.ImageObserver;
import java.util.Vector;
import java.net.URL;
public class ButtonMove extends JFrame
{
JButton jButton1 = new JButton();
int focusx=0;
int focusy=0; public ButtonMove()
{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit() throws Exception
{
jButton1.setBounds(new Rectangle(86, 113, 73, 25));
jButton1.setText("jButton1");
jButton1.addMouseListener(new MouseProcess(){});
jButton1.addMouseMotionListener(new MouseMotionProcess()); this.setLocale(java.util.Locale.getDefault());
this.getContentPane().setLayout(null);
this.getContentPane().add(jButton1, null);
this.setSize(400,500);
this.setVisible(true);
} private class MouseProcess extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
} public void mousePressed(MouseEvent e)
{
focusx = e.getX(); focusy = e.getY();
} } private class MouseMotionProcess extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
Container container = jButton1.getParent();
int w = container.getWidth();
int h = container.getHeight(); int x = jButton1.getX()+e.getX()-focusx;
int y = jButton1.getY()+e.getY()-focusy; if( x+jButton1.getWidth() > w ) x = w-jButton1.getWidth();
if( y+jButton1.getHeight() > h ) y = h-jButton1.getHeight();
if( x < 0 ) x = 0;
if( y < 0 ) y = 0; jButton1.setLocation(x, y);
jButton1.setLocation(x,y+jButton1.getHeight());
container.repaint();
container = null;
}
} public static void main(String args[]){
new ButtonMove();
}
}
import java.awt.*;import java.awt.event.*;
import java.awt.image.ImageObserver;
import java.util.Vector;
import java.net.URL;
public class ButtonMove extends JFrame
{
JButton jButton1 = new JButton();
int focusx=0;
int focusy=0; public ButtonMove()
{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit() throws Exception
{
jButton1.setBounds(new Rectangle(86, 113, 73, 25));
jButton1.setText("jButton1");
jButton1.addMouseListener(new MouseProcess(){});
jButton1.addMouseMotionListener(new MouseMotionProcess()); this.setLocale(java.util.Locale.getDefault());
this.getContentPane().setLayout(null);
this.getContentPane().add(jButton1, null);
this.setSize(400,500);
this.setVisible(true);
} private class MouseProcess extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
} public void mousePressed(MouseEvent e)
{
focusx = e.getX(); focusy = e.getY();
} } private class MouseMotionProcess extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
Container container = jButton1.getParent();
int w = container.getWidth();
int h = container.getHeight(); int x = jButton1.getX()+e.getX()-focusx;
int y = jButton1.getY()+e.getY()-focusy; if( x+jButton1.getWidth() > w ) x = w-jButton1.getWidth();
if( y+jButton1.getHeight() > h ) y = h-jButton1.getHeight();
if( x < 0 ) x = 0;
if( y < 0 ) y = 0; jButton1.setLocation(x, y);
jButton1.setLocation(x,y+jButton1.getHeight());
container.repaint();
container = null;
}
} public static void main(String args[]){
new ButtonMove();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货