我在使用java Swing获得流畅的运动时遇到了困难。使用这个代码,包括在应用到面板之前使用BufferedImage来绘制图形,会给我带来摇晃和口吃的结果。我如何修复这个问题?
public class SmoothMotion extends JPanel {
public static final int size = 800;
public static int pos = 0;
public static void main(String[] args) {
JPanel panel = new SmoothMotion();
JFrame frame = new JFrame("Smooth As");
frame.setSize(size, size);
frame.add(panel);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Timer timer = new Timer(17, new ActionListener() {
public void actionPerformed(ActionEvent e) {
SmoothMotion.updateItems();
panel.repaint();
}
});
timer.start();
}
public static void updateItems() {
pos += 4;
pos = pos > 750 ? 0 : pos;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, size, size);
g.setColor(Color.RED);
g.fillRect(pos > 375 ? 750 - pos : pos, 100, 50, 50);
}
}
>
不需要BuffereImage。Swing在默认情况下是双缓冲的。只需调用super。paintComponent(graphics)
首先清除背景,然后进行自定义绘制。
绘制方法不应更改类的属性。你应该有一个像updatePos(…)
这样的方法来更新位置。
ActionLIstener将调用updatePos()
,然后调用repaint()
。
请参阅:获取课堂外JPanel的宽度和高度,以获取演示上述许多建议的示例。
本文向大家介绍Android中实现水平滑动(横向滑动)ListView示例,包括了Android中实现水平滑动(横向滑动)ListView示例的使用技巧和注意事项,需要的朋友参考一下 水平的ListView-HorizontalListView的使用 Android中ListView默认的是竖直方向的滑动,由于项目的需求,需要ListView是水平滑动的。有很多的方式可以实现,但是比较好的一种方式
本文向大家介绍jquery实现图片平滑滚动详解,包括了jquery实现图片平滑滚动详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jquery图片平滑滚动效果的具体代码,供大家参考,具体内容如下 随便写了个DOM,没有美观性,见谅 原理: 1、定义两组ul列表放图,第一个ul放5张图,第二个ul为空 2、为什么要用两个ul?因为要用到jQuery的克隆方法clone()。把第一个
本文向大家介绍Python实现滑动平均(Moving Average)的例子,包括了Python实现滑动平均(Moving Average)的例子的使用技巧和注意事项,需要的朋友参考一下 Python中滑动平均算法(Moving Average)方案: 以上这篇Python实现滑动平均(Moving Average)的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊
我正在开发一个应用程序,其中我使用了AppBarLayout和CollapsingToolbarLayout以及NestedScrollView。我已经成功地实现了这一点,并且运行良好。 现在我想做的是,在嵌套滚动视图上滑动(快速向上滑动)时,它应该完全滚动到顶部。类似地,在向屏幕底部滑动(快速向下滑动)时,它必须平滑地滚动到底部。然而现在,它只能卡在中间,这使它看起来很丑。我已经尝试了许多可用的
我有5刷屏幕和我的代码只是停留在第三个屏幕我想水平滚动。
我很好奇,在放置组件时,如何使用miglaway在网格上均匀分布组件: 例如,如果我在一个按钮组中放置四个JRadioButton以跨越3行2列(2,3),然后放置三个JButton,则分布的权重是不相等的,我最终会得到以下结果: 如图所示,A和B的大小相同,C保留剩余的空间:我希望A、B、C在垂直方向上等于三分之一。 如果这在GridBagLayout中是可能的,我也可以利用它,但是我在任何一种