java GUI 按钮问题
编写一个应用程序,窗口布局为null,在窗口中有两个按钮,单击其中的一个按钮能让另个一个按钮移动。请问这个程序该怎么写啊,我一点思路也没有。publicvoidactio...
编写一个应用程序,窗口布局为null,在窗口中有两个按钮,单击其中的一个按钮能让另个一个按钮移动。
请问这个程序该怎么写啊,我一点思路也没有。
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
int x = (int)(300*Math.random());
int y = (int)(300*Math.random());
b2.setSize(60,30);
b2.setLocation(x, y);
add(b2);
}
}
}
class WindowMoniter extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
} 展开
请问这个程序该怎么写啊,我一点思路也没有。
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
int x = (int)(300*Math.random());
int y = (int)(300*Math.random());
b2.setSize(60,30);
b2.setLocation(x, y);
add(b2);
}
}
}
class WindowMoniter extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
} 展开
3个回答
展开全部
帮你写了一个,每按一次 button1 就会让 button2 滑动到屏幕上一个随机的位置,代码给你:
---------------------------------------------------------------
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class Demo extends JFrame {
private JButton btn1, btn2;
private int _x, _y;
private Random rnd = new Random();
class Motion extends Thread {
@Override public void run () {
double d_x = btn2.getLocation().x;
double d_y = btn2.getLocation().y;
try {
for (int i=1; Math.abs(btn2.getLocation().x - _x) > 2; i++) {
d_x += i * (_x - d_x) / 50.0;
d_y += i * (_y - d_y) / 50.0;
btn2.setLocation((int)d_x, (int)d_y);
Thread.sleep(30);
}
} catch (InterruptedException ie) {}
btn1.setEnabled(true);
}
}
public Demo () {
super("Button -- Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setLocationRelativeTo(null);
setLayout(null);
btn1 = new JButton("Button 1");
btn1.setBounds(200, 100, 100, 30);
btn1.addActionListener(new ActionListener() {
@Override public void actionPerformed (ActionEvent ae) {
_x = rnd.nextInt(getWidth()-btn2.getWidth());
_y = rnd.nextInt(getHeight()-btn2.getHeight()-30);
btn1.setEnabled(false);
new Motion().start();
}
});
btn2 = new JButton("Button 2");
btn2.setBounds(200, 300, 100, 30);
add(btn1);
add(btn2);
setVisible(true);
}
public static void main (String args[]) {
new Demo();
}
}
---------------------------------------------------------------
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class Demo extends JFrame {
private JButton btn1, btn2;
private int _x, _y;
private Random rnd = new Random();
class Motion extends Thread {
@Override public void run () {
double d_x = btn2.getLocation().x;
double d_y = btn2.getLocation().y;
try {
for (int i=1; Math.abs(btn2.getLocation().x - _x) > 2; i++) {
d_x += i * (_x - d_x) / 50.0;
d_y += i * (_y - d_y) / 50.0;
btn2.setLocation((int)d_x, (int)d_y);
Thread.sleep(30);
}
} catch (InterruptedException ie) {}
btn1.setEnabled(true);
}
}
public Demo () {
super("Button -- Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setLocationRelativeTo(null);
setLayout(null);
btn1 = new JButton("Button 1");
btn1.setBounds(200, 100, 100, 30);
btn1.addActionListener(new ActionListener() {
@Override public void actionPerformed (ActionEvent ae) {
_x = rnd.nextInt(getWidth()-btn2.getWidth());
_y = rnd.nextInt(getHeight()-btn2.getHeight()-30);
btn1.setEnabled(false);
new Motion().start();
}
});
btn2 = new JButton("Button 2");
btn2.setBounds(200, 300, 100, 30);
add(btn1);
add(btn2);
setVisible(true);
}
public static void main (String args[]) {
new Demo();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在一个按钮的监听事件里改变另一个按钮的坐标
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |