java Application 中 JBUTTON 为啥不能慢慢移动

joan933 2003-11-05 08:53:32
java Application 中 JBUTTON 为啥不能慢慢移动?
能帮我看看吗?已经三星期了,还是不知如何做。



package image_test;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class Frame2 extends JFrame {
JPanel contentPane;

BorderLayout borderLayout1 = new BorderLayout();
JButton jButton1 = new JButton();

//Construct the frame
public Frame2() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jButton1.setBounds(new Rectangle(162, 65, 192, 66));

contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");

jButton1.setText("jButton1");
contentPane.addMouseListener(new Frame2_contentPane_mouseAdapter(this));
contentPane.add(jButton1, null);
}
//Overridden so we can exit when window is closed

protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}

void contentPane_mouseClicked(MouseEvent e) {

for(int i=55; i>2; i=i-5){
try{
Thread.sleep(2000);
System.out.println(i);
this.getContentPane(). setLayout(null);
// jButton1.setBounds(new Rectangle(80, 69, 206, 53));
jButton1.setLocation(i,115);
// jButton1.repaint();
this.getContentPane().add(jButton1, null);
contentPane.repaint();
//this.repaint();


}catch(InterruptedException exception) {
System.err.println(exception.toString());
}
}//end for

}//// end contentPanel mouse_clicked


}

class Frame2_contentPane_mouseAdapter extends java.awt.event.MouseAdapter {
Frame2 adaptee;

Frame2_contentPane_mouseAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.contentPane_mouseClicked(e);
}
}


...全文
27 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
alieneagle 2003-11-07
  • 打赏
  • 举报
回复
我试了试,是线程的问题,线程睡眠一次是可以的,多次就不行了,改为Timer后就可以了,代码如下:

package pa1;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class Frame2
extends JFrame
{
JPanel contentPane;
Timer t = null;
int x = 0;

BorderLayout borderLayout1 = new BorderLayout();
JButton jButton1 = new JButton();

//Construct the frame
public Frame2()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try
{
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}

public static void main(String[] args)
{
Frame2 frame21 = new Frame2();
frame21.setVisible(true);
frame21.setBounds(0, 0, 500, 400);
}

//Component initialization
private void jbInit() throws Exception
{
contentPane = (JPanel)this.getContentPane();
jButton1.setBounds(new Rectangle(0, 0, 192, 66));

contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");

jButton1.setText("jButton1");
contentPane.addMouseListener(new Frame2_contentPane_mouseAdapter(this));
contentPane.add(jButton1, null);
}
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}

void contentPane_mouseClicked(MouseEvent e)
{


try
{
//Thread.sleep(1000);
t = new Timer(1420, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
x++;
//t.stop();
jButton1.setLocation(x, 115);
}
});
t.start();
validate();
repaint();

}
catch (Exception exception)
{
System.err.println(exception.toString());
}
}

}

class Frame2_contentPane_mouseAdapter
extends java.awt.event.MouseAdapter
{
Frame2 adaptee;

Frame2_contentPane_mouseAdapter(Frame2 adaptee)
{
this.adaptee = adaptee;
}

public void mouseClicked(MouseEvent e)
{
adaptee.contentPane_mouseClicked(e);
}
}
alieneagle 2003-11-07
  • 打赏
  • 举报
回复
是要做控件拖动吗
Java程序设计复习题2 1、下列关于Java ApplicationJava Applet程序的差别描述正确的是(B ) A) 运行方式不同,程序结构相同,运行工具不同,受到的限制相同 B) 运行方式相同,程序结构不同,运行工具不同,受到的限制相同 C) 运行方式相同,程序结构相同,运行工具不同,受到的限制也不同 D) 运行方式不同,程序结构不同,运行工具不同,受到的限制也不同 2、Java语言具有许多优点和特点,下列选项,哪个反映了Java程序并行机制的特点( B ) A) 安全性 B) 多线性 C) 跨平台 D) 可移植 3、Java语言的int及char数据类型的长度分别为? A) 16位和8 位 B) 8位和16位 C) 32位和16位 D) 32位和8位 4、数组的哪个实例变量可以确定数组的长度( B ) A) size B) length C) max_value D) Length() 5、异常包含下列那些内容( C ) A) 程序的语法错误 B) 程序的编译错误 C) 程序执行过程遇到的事先没有预料到的情况 D) 程序事先定义好的可能出现的意外情况 6、java语言在语言的类型上应属于那种类型的语言D A) 编译型的语言 B) 解释型的编译语言 C) 脚本型的解释语言 D) 编译链接型的语言 7、java语言在编程方法上及语言的语法规则上与如下那种编程语言最接近B A) C 语言 B) C++语言 C) Basic 语言 D) Fortran 语言 8、监听事件和处理事件(C ) A) 都由Listener完成 B) 都由相应事件Listener处登记过的构件完成 C) 由Listener和构件分别完成 D) 由Listener和窗口分别完成 9、在MicroSoft Windows操作系统应用平台下,下列那种程序是java程序的解释器D A) Windows系统的资源管理器 B) Windows操作系统本身 C) Windows操作系统应用平台下的IE浏览器 D) Windows操作系统应用平台下的记事本notepad程序 10、下面说法正确的是(B ) A) final 可修饰类、属性、方法。 B) abstract可修饰类、属性、方法。 C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序可对这个变量的值进行更改。 11、下列哪个属于容器的构件( A ) A) JFrame B) JButton C) Panel D) JApplet 12、下列那种标识符在java程序是错误的D A) MyClass_Base12 B) _MyClass$Base12 C) $MyClass_12 D) 76MyClass$12 13、下列叙述,正确的是( C ) A)Reader是一个读取字符文件的接口 B)Reader是一个读取数据文件的抽象类 C)Reader是一个读取字符文件的抽象类 D)Reader是一个读取字节文件的一般类 14、main 方法是 Java Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的( B ) A)public static void main ( ) B)public static void main ( String args[] ) C)public static int main ( String [] arg ) D)public void main ( String arg[] ) 15、下列代码,将引起编译错误的行是( B ) 1)public class Exercise{ 2) public static void main(String args[]){ 3) float f=0.0; 4) f+=1.0; 5) } 6) } A) 第2行 B) 第3行 C) 第4行 D) 第6行 16、下列各种java的条件语句,那种在java语言是错误的条件格式? A) if (A >= B) B) if( A = = B) C) if( A = B) D) if((A >B) = =true) 17、下列Java常见事件类哪个是鼠标事件类( C ) A)InputEvent B)KeyEvent C)MouseEvent D)WindowEvent 18、下列哪个是面向大型企业级用容器管理专用构件的应用平台( A) A)J2EE B)J2ME C)J2SE D)J2DE 19、何时线程进入runnable 阶段( ) A)当调用get() 方法时 B)当调用setTime() 方法时 C)当调用showStatus() 方法时 D)当调用start()方法时 20、下

51,402

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧