第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

java核心技術(shù)卷的一個(gè)單線程小球移動(dòng)

標(biāo)簽:
Java

import javax.swing.;
import java.awt.
;
import java.awt.event.ActionListener;

public class Bounce {

public static void main(String[] args) {

    EventQueue.invokeLater(() -> {
        JFrame frame = new BounceFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    });
}

}

class BounceFrame extends JFrame {

private BallComponent comp;
public static final int STEPS = 1000;
public static final int DELAY = 3;

public BounceFrame() {

    setTitle("Bounce");
    comp = new BallComponent();
    add(comp, BorderLayout.CENTER);
    JPanel buttonPanel = new JPanel();
    addButton(buttonPanel, "Start", event -> addBall());
    addButton(buttonPanel, "Close", event -> System.exit(0));
    add(buttonPanel, BorderLayout.SOUTH);
    pack();
}

public void addButton(Container c, String title, ActionListener listener) {
    JButton button = new JButton(title);
    c.add(button);
    button.addActionListener(listener);
}

public void addBall() {

    try
    {
        Ball ball = new Ball();
        comp.add(ball);

        for (int i = 1; i <= STEPS; i++) {
            ball.move(comp.getBounds());
            comp.paint(comp.getGraphics());//重新绘制
            Thread.sleep(DELAY);//单线程延迟3毫秒
        }
    }
    catch (InterruptedException e)
    {

    }
}

}

import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

public class Ball {

private static final int XSIZE = 15;
private static final int YSIZE = 15;
private double x = 0;
private double y = 0;
private double dx = 1;
private double dy = 1;

public void move(Rectangle2D bounds) {

    x += dx;
    y += dy;
    if (x < bounds.getMinX()) {
        x = bounds.getMinX();
        dx = -dx;
    }
    if (x + XSIZE >= bounds.getMaxX()) {
        x = bounds.getMaxX() - XSIZE;
        dx = -dx;
    }
    if (y < bounds.getMinY()) {
        y = bounds.getMinY();
        dy = -dy;
    }
    if (y + YSIZE >= bounds.getMaxY()) {
        y = bounds.getMaxY() - YSIZE;
        dy = -dy;
    }
}

public Ellipse2D getShape() {
    return new Ellipse2D.Double(x, y, XSIZE, YSIZE);
}

}

import javax.swing.;
import java.awt.
;
import java.util.ArrayList;

public class BallComponent extends JPanel {

private static final int DEFAULT_WIDTH = 450;
private static final int DEFAULT_HEIGHT = 350;

private java.util.List<Ball> balls = new ArrayList<>();

public void add(Ball b) {
    balls.add(b);
}

public void paintComponent(Graphics g) {

    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D)g;
    for (Ball b : balls) {
        g2.fill(b.getShape());
    }
}

public Dimension getPreferredSize() {
    return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
}

}

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消