java repaint 无效_repaint() 无效 求助 谢谢
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.util.ArrayList;
import javax.swing.*;
public class Bounce {
/**
* @param args
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
BallFrame f = new BallFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}
class BallFrame extends JFrame {
private Timer timer;
private Action start, stop;
private PaintPanel panel;
public BallFrame() {
setTitle("Ball");
panel = new PaintPanel();
panel.addBall(new Ball(20, 20));
panel.setPreferredSize(new Dimension(500, 400));
getContentPane().add(panel, BorderLayout.CENTER);
timer = new Timer(10, panel);
JPanel control = new JPanel(); // FlowLayout(FlowLayout.CENTER)
start = new AbstractAction("Start") {
@Override
public void actionPerformed(ActionEvent e) {
if( !timer.isRunning() )
timer.start();
start.setEnabled(false);
stop.setEnabled(true);
}
};
stop = new AbstractAction("Stop") {
@Override
public void actionPerformed(ActionEvent e) {
if( timer.isRunning() )
timer.stop();
start.setEnabled(true);
stop.setEnabled(false);
}
};
stop.setEnabled(false);
control.add(new JButton(start));
control.add(new JButton(stop));
getContentPane().add(control, BorderLayout.SOUTH);
pack();
}
}
class Ball {
private int x, y, dx = 1, dy = 1; //dx,dy 是移动的量· x,y 是坐标
public Ball(int x, int y) {
this.x = x;
this.y = y;
}
public void move(int x_max, int y_max) {
x += dx;
y += dy;
if( x < 0 ) {
dx = -dx;
x += 2 * dx;
}
if( y < 0 ) {
dy = -dy;
y += 2 * dy;
}
if( x > x_max ) {
dx = -dx;
x += 2 * dx;
}
if( y > y_max ) {
dy = -dy;
y += 2 * dy;
}
}
public Ellipse2D getShape() {
return new Ellipse2D.Double(x, y, 20, 20);
}
}
class PaintPanel extends JComponent implements ActionListener {
private java.util.List balls = new ArrayList();
public void addBall(final Ball b) {
if( b == null )
return;
if( EventQueue.isDispatchThread() )
balls.add(b);
else {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
addBall(b);
}
});
}
}
@Override
public void paintComponent(Graphics g) {
@SuppressWarnings("unchecked")
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(Color.BLUE);
for(Ball b : balls)
g2.fill(b.getShape());
g2.dispose();
}
@Override
public void actionPerformed(ActionEvent e) {
for(Ball b : balls)
b.move(getWidth(), getHeight());
repaint();
}
}
@Deprecated
class Run implements Runnable {
int height = 0, width = 0;
Ball ball;
Component c;
PaintPanel p;
BallFrame bf;
public Run(Ball ball, PaintPanel p) {
this.ball = ball;
this.c = p;
}
@Override
public void run() {
System.out.println("进入线程?");
BallFrame ballFrame = new BallFrame();
height = ballFrame.getHeight();
width = ballFrame.getWidth();
for(int i = 1; i < 100; i++) {
try {
System.out.println("move " + i);
ball.move(width, height);
c.repaint();
Thread.sleep(1);
}
catch(InterruptedException e) {
}
}
}
}
java repaint 无效_repaint() 无效 求助 谢谢相关推荐
- java光标位置无效_java - java.sql.SQLException:无效的光标位置 - 堆栈内存溢出
我创建了一个简单的应用程序,使用户可以购买门票. 但是,每当我尝试购买" n"张门票时,都会遇到此错误. 现在,我知道在使用数据库进行操作时需要crs.next()语句,我已经使用 ...
- Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ...
- java.sql.SQLException: ORA-00911: 无效字符 解决方法
如果你用java写程序访问数据库,出现这个问题: java.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseError. ...
- 解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 报错: ### Cause: java.sql.SQLSyntaxErrorException ...
- mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法
mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法 参考文章: (1)mybatis项目报错:java.sql.SQLException: ...
- java 句柄无效_Java开发网 - java.io.IOException: 句柄无效???
Posted by:aideliwu Posted on:2004-09-01 21:32 我思考le很久,也查看啦代码很久,可还是百思不得其解, 在Freejava中运行的结果还是: java.io ...
- ### Cause: java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字
org.springframework.dao.DataIntegrityViolationException: ### Error querying database. Cause: java.sq ...
- java.sql.SQLException: ORA-00911: 无效字符(编译器大坑)
今天遇到一个问题,java中执行sql,sql明明是对的,复制到datagrip(或 plsql Dev)都能执行,但就是报错: 1017 122715 [http-apr-18083-exec-7] ...
- oracle java.sql.SQLException: 列名无效
执行一段sql, String sql="select e.*,nvl(p.userid,0) as proid from (select * from (select ROWNUM as ...
最新文章
- mysql存储过程-汇总学习
- ubantu14.04下固定ip的配置方法以及问题处理
- 中国影视股,越补贴,越萎靡
- wamp php imagick,如何在wamp for Windows中安装和启用Imagick扩展 php psd 生成缩略图
- ICanPay 统一支付网关
- Python-又到了抢票的季节(带验证码识别验证)
- 小鹏汽车自动驾驶内推(社招+校招)
- java三个数比大小_三个数的比较 不同的实现方法java
- 分分钟教你学会 ToolBar 的使用(转)
- 通信维修专用电源_万可PRO 2电源 | 开拓性通信功能,自信迈入数字化时代
- java dbutil_DBUtil java工具类
- 西门子水处理1200PLC程序+触摸屏程序,博图V16学习程序,可仿真实验 Plc程序包含功能块,功能块为SCL编写
- nxp单片机入门_ST、NXP、Microchip、TI、Renesas公司的MCU和MPU定位、性能及特点
- 怎么自己做淘宝优惠券的网站?看完这个你就全懂了
- Quorum加密技术分析
- Linux下查看网络设备类型
- 机器学习数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)
- 学WEB前端开发,自学还是培训靠谱
- 利用留数定理计算实积分
- Inno Setup实例教程之一:软件安装和demo使用
热门文章
- 站在中间立场看 360 VS QQ
- Echarts地图不展示南海九段线/南海诸岛问题解决
- oracle大于号怎么用,解决MyBatis的mapper中SQL小于号或大于号报错-tag name expected
- PHP strtotime函数参数
- 用计算机设计主题色调,网页设计之主题配色四大技巧
- linux的c语言捕获sigsegv,Segmentation Fault in Linux (2.4栈溢出了,有时SIGSEGV,有时却啥都没发生)...
- adb应用安装失败分析
- 这30张高清速查表 竟然比官网还厉害,速领
- PHP爬虫音乐,PHP 爬虫———爬取网易云音乐歌单
- 【4 - 分组】Sql Server - 郝斌(分组group by、过滤having、聚合函数max() / count()、排序order by、select语句的执行顺序)