利用多线程解决银行窗口业务问题,使用语言:JAVA

使用多线程来建立一个银行窗口

1、使用Runnable接口解决(推荐使用)

package class0310Test;
public class Class0101BankTestRunnable implements Runnable{
       
    //共用信息放在成员位置    
    private int num = 1;   
    //实现接口必须对run()方法进行重写    
    public void run(){
           
    //由于每个线程执行多少次不确定,所以直接写true即可        
    while(true){
               
    //表示如果到了100号自动停止            
    if(num>100){
                   
        break;
    }            
    //如果在100以内,就输出xx号用户到窗口办理业务
        System.out.println(num+"号用户请到"+Thread.currentThread().getName()+"号窗口办理业务");            
    //由于线程处理较快,所以需要让线程在执行一次后休眠2毫秒
        try {
   
            Thread.sleep(2);
        }
        catch (InterruptedException e)
        {
   
            e
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 要在Java窗口使用按钮实现倒计时功能,同样可以使用多线程来实现。具体步骤如下: 1. 创建一个继承自JFrame的窗口类。 2. 在窗口类中创建一个继承自Thread的倒计时线程类。 3. 在窗口类中创建一个JButton组件,用于开始倒计时。 4. 在JButton组件上添加一个ActionListener,用于启动倒计时线程。 5. 在窗口类的构造方法中将JButton组件添加到窗口中。 6. 在倒计时线程类中重写run()方法,实现倒计时的逻辑。 7. 在倒计时线程类中添加一个boolean类型的变量,用于控制线程的执行。 8. 在ActionListener中设置倒计时线程的控制变量为true,启动倒计时线程。 9. 在倒计时线程中判断控制变量是否为true,如果为true则执行倒计时逻辑,否则结束线程。 10. 在倒计时线程中使用SwingUtilities.invokeLater()方法更新倒计时显示。 下面是示例代码: ``` import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CountdownFrame extends JFrame { private JLabel countdownLabel; private JButton countdownButton; public CountdownFrame() { countdownLabel = new JLabel("倒计时:"); countdownLabel.setFont(new Font("微软雅黑", Font.BOLD, 18)); countdownLabel.setForeground(Color.RED); countdownLabel.setHorizontalAlignment(SwingConstants.CENTER); add(countdownLabel, BorderLayout.CENTER); countdownButton = new JButton("开始倒计时"); countdownButton.setFont(new Font("微软雅黑", Font.PLAIN, 16)); countdownButton.addActionListener(new CountdownActionListener()); add(countdownButton, BorderLayout.SOUTH); setTitle("倒计时窗口"); setSize(400, 300); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } class CountdownThread extends Thread { private boolean running = true; @Override public void run() { int count = 10; while (count >= 0 && running) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { countdownLabel.setText("倒计时:" + count + "秒"); } }); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } count--; } SwingUtilities.invokeLater(new Runnable() { @Override public void run() { countdownLabel.setText("时间到!"); } }); } public void stopRunning() { running = false; } } class CountdownActionListener implements ActionListener { private CountdownThread countdownThread; @Override public void actionPerformed(ActionEvent e) { if (countdownThread == null || !countdownThread.isAlive()) { countdownThread = new CountdownThread(); countdownThread.start(); } } } public static void main(String[] args) { new CountdownFrame(); } } ``` 在这个示例代码中,我们创建了一个继承自JFrame的窗口类,并在构造方法中创建了一个JLabel组件用于显示倒计时,并创建了一个JButton组件用于开始倒计时。然后我们创建了一个继承自Thread的倒计时线程类,在run()方法中实现了倒计时的逻辑,并添加了一个控制变量用于控制线程的执行。在ActionListener中,我们设置倒计时线程的控制变量为true,启动倒计时线程。在倒计时线程中,我们使用SwingUtilities.invokeLater()方法更新倒计时显示,并在倒计时结束时更新显示为“时间到!”。当用户再次点击开始倒计时按钮时,我们检测倒计时线程是否已经结束,如果已经结束则重新创建一个新的倒计时线程。 希望这个示例代码能够帮助到你,如果还有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值