JAVA线程

编写一个图形用户界面程序,窗体的宽度300,高度150,布局管理器为null,窗体上有二个标签和二个按钮,标签的位置为(10,30)和(200,60),按钮的位置为(50,100)和(150,100),它们的宽度和高度都是80和20。编写一个线程,该线程可以让标签向右或向左移动10次,每次移动10个单位,间隔1秒,通过按钮的动作事件启动上述线程,“向右走”按钮启动“向右移标签”,“向左走”按钮启动“向左移标签”,界面如下图所示。

 

 package 实验9;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class shiyan9_5 extends Thread{
JLabel l1,l2;
static boolean bool;
public shiyan9_5(JLabel l1,JLabel l2)
{
this.l1=l1;
this.l2=l2;
}
public void run()
{
if(bool==true)
for(int i=0;i<10;i++)
{
try {
l1.setBounds(l1.getX()+10,30,80,20);
Thread.sleep(1000);
}catch(Exception e) {System.out.println(e);}
}
else if(bool==false)
{
for(int i=0;i<10;i++)
{
try {
l2.setBounds(l2.getX()-10,60,80,20);
Thread.sleep(1000);
}catch(Exception e) {System.out.println(e);}
}
}
}
public static void main(String[] args) {
JFrame f=new JFrame();
f.setSize(300,200);
f.setVisible(true);
f.setLayout(null);
JLabel l1=new JLabel("向右移标签");
JLabel l2=new JLabel("向左移标签");
l1.setBounds(10,30,80,20);
l2.setBounds(200,60,80,20);
f.add(l1);
f.add(l2);
JButton b1=new JButton("向右走");
JButton b2=new JButton("向左走");
b1.setBounds(50,100,80,20);
b2.setBounds(150,100,80,20);
f.add(b1);
f.add(b2);
shiyan9_5 t1=new shiyan9_5(l1,l2);
shiyan9_5 t2=new shiyan9_5(l2,l2);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
bool=true;
t1.start();
}

});
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
bool=false;
t2.start();
}
});
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值