/*
java JPanel绘制
*/
import javax.swing.*;
import java.awt.*;
public class Twoball {
public Twoball() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel mp=new MyPanel();
f.setContentPane(mp);
mp.start();
mp.setBackground(Color.white);
f.setSize(new Dimension(100, 200));
f.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/2-50, Toolkit.getDefaultToolkit().getScreenSize().height/2-100);
f.setVisible(true);
}
public static void main(String[] args) {
Twoball b = new Twoball();
}
}
class MyPanel extends JPanel implements Runnable{
private Thread thread=new Thread(this);
private short leve=0;
MyPanel(){
this.setSize(200,200);
this.setVisible(true);
}
public void run() {
// TODO Auto-generated method stub
while (true) {
this.repaint();
try {
thread.sleep(1000*2);
leve++;
System.out.println(leve);
if(leve==5)leve=1;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}
public void start(){
thread.start();
}
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.red);
g.clearRect(0, 0, this.getWidth(), this.getHeight());
if(leve==1){
g.fillRect(35, 56, 20, 15);
g.fillRect(20, 74, 50, 15);
}else if(leve==2){
g.fillRect(35, 38, 20, 15);
g.fillRect(20, 56, 50, 15);
g.fillRect(20, 74, 50, 15);
}else if(leve==3){
g.fillRect(35, 20, 20, 15);
g.fillRect(20, 38, 50, 15);
g.fillRect(20, 56, 50, 15);
g.fillRect(20, 74, 50, 15);
}else if(leve==4){
g.fillRect(35, 2, 20, 15);
g.fillRect(20, 20, 50, 15);
g.fillRect(20, 38, 50, 15);
g.fillRect(20, 56, 50, 15);
g.fillRect(20, 74, 50, 15);
}
this.updateUI();
}
}
分享到:
相关推荐
通过对`MyShape`抽象类的子类化,我们可以创建各种各样的形状,并在`JPanel`上进行绘制。通过数组管理和随机性,可以实现图形的多样化展示,使得界面更生动有趣。学习和掌握这些技术,对于任何希望在Java环境中构建...
当用户点击并拖动鼠标时,我们将记录起始点和结束点,并在`mouseReleased()`方法中调用`repaint()`以刷新组件并绘制图形。 5. **图形编辑**:编辑功能通常包括选择、移动、缩放和改变颜色等操作。这需要在绘图区域...
Swing 的主要组件包括 JFrame、JPanel、JButton、JLabel 等,通过组合这些组件,可以创建复杂的图形界面。 知识点二:验证码的生成和展示 在本文中,我们使用了Java的Random类来生成随机验证码字符串,并使用...
在Java编程语言中,开发一个函数图像绘制工具是一项挑战性的任务,它涉及到图形用户界面(GUI)设计、数学计算以及图形渲染技术。这个"JAVA绘制函数图像工具"很可能是为了解决教育环境中教学与学习的需求,让学生或...
例如,Component类的方法enable()和disable()分别用于启用和禁用组件,show()用于显示组件,paint()和repaint()用于绘制和刷新组件的图形。 布局管理器是AWT中的关键概念,它负责决定组件在容器内的位置和大小。...
在Java编程语言中,我们可以利用Java的图形用户界面(GUI)组件和图形API来实现鼠标的拖动绘制功能,创建出动态的、交互式的图形应用。以下是对标题和描述中涉及知识点的详细解释: 1. **单例模式设计**: 单例...
5. **刷新与更新** 在完成绘图后,记得调用`repaint()`方法,以使图形在窗口中显示出来。`repaint()`会触发窗口的重绘,确保图形的变化能够及时反映在界面上。 6. **事件监听** 如果需要在用户交互时动态改变图形...
- **多线程**:为了实现游戏与界面更新的同步,通常会使用多线程,一个线程处理游戏逻辑,另一个线程负责UI刷新。 3. **贪吃蛇游戏机制** - **蛇的移动**:蛇按照固定方向移动,每次移动一格,身体的其他部分会...
在Swing中,可以创建一个圆形的组件,比如JPanel,然后重写paintComponent()方法来绘制时钟的背景、刻度和指针。使用Graphics2D API可以实现这样的定制画布功能,它允许精确的几何形状绘制和颜色填充。 时钟的运行...
2. 绘图面板:继承自JPanel或Canvas,重写`paintComponent(Graphics g)`方法进行绘制。 3. 控件:如JButton、JLabel、JTextField等,用于用户交互,如输入角度或自定义函数。 4. 更新逻辑:定时器触发的事件处理,...
开发者可能使用了`JFrame`作为游戏窗口的基础,`JPanel`来绘制游戏场景,并利用`KeyListener`监听用户的键盘输入,以便控制飞机移动。 游戏的核心部分包括飞机对象、子弹对象和敌人对象的创建与管理。这些对象通常...
Swing是Java的标准库之一,提供了丰富的组件库,如JFrame、JPanel和JLabel等,可以用来创建窗口和控件。JavaFX则提供更现代的外观和更多的动画效果,但可能需要额外的库支持。 2. **地图API集成**:为了显示地图,...
8. 自定义组件绘制:在Swing中,`JPanel`是一个容器,可以用来绘制自定义的图形界面元素。在聊天室作业中,`ballPanel`类继承自`JPanel`,可能用于绘制聊天窗口中的界面元素,例如聊天消息、用户信息等。 9. Java ...
随着游戏进程的推进,可能会出现性能问题,比如界面刷新的延迟。因此,对游戏循环进行优化,确保高效的游戏状态更新和渲染是很重要的。此外,为了提高代码的可维护性和可扩展性,应该遵循良好的编程实践,比如编写可...
每过一定时间间隔,调用repaint()方法刷新界面,从而达到动态显示的效果。 4. **事件处理**:如果程序具有交互性,那么可能包括了鼠标点击事件监听,当用户点击棋盘时,可以响应并执行相应的操作,如放置棋子或执行...
这个时钟是一个图形用户界面(GUI)应用程序,它继承自JPanel类,并且能够显示当前的时间,同时也可以接受用户输入的时间值。以下是根据提供的文件内容进行知识点整理: 1. Java基础: - Java是一种面向对象的编程...
`BufferedImage`可以作为一个后台图像,我们在上面进行绘图,然后一次性将结果绘制到`Graphics`对象上,减少频繁的屏幕刷新。 7. 扩展与进阶 初级的画图板可能只支持直线和基本形状的绘制,但可以通过扩展支持更多...
在Java编程语言中,开发图形用户界面(GUI)时,我们有时需要实现一些特殊效果来增强用户体验,其中“放大镜”效果就是一个常见的需求。这个效果可以让用户通过鼠标悬停在一个区域上,就像使用物理放大镜一样看到该...
每次接收到新的视频帧时,都需要调用`repaint()`方法来刷新界面。 ```java public class MyMediaViewer extends JPanel implements IMediaViewer { @Override public void drawToolKitImage(Graphics2D g, ...
然后,在JPanel的paintComponent方法中,根据鼠标事件存储的起点和终点,使用Graphics2D对象绘制线条。同时,可能还会有对颜色和线型的处理逻辑。 9. **事件处理**: 鼠标事件的处理是通过事件监听器实现的。我们...