java中paint_java GUI编程之paint绘制操作示例

paint方法是container类的一个方法,其能够实现绘图的功能,其是本身自带的方法,我们相当于重写了这个方法,在调用时我们用到了参数(Graphics g),一个画笔,用g来实现绘画,Frames是container的一个子类,所以我们在Frame里重写了Paint方法。

注;Color c = g.getColor(),和g.setColor(c),相当于把画笔用完后,重新置为原来的颜色。

Paint 的一个实例,外加MouseMonitor的介绍。

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class TestPaint2 {

public static void main(String[] args) {

new TFpaint("Draw");

class TFpaint extends Frame{

ArrayList pointList = null;

TFpaint(String s){

super(s);

pointList = new ArrayList();

this.setLayout(null);

this.setBounds(200, 200, 400, 400);

this.setBackground(Color.blue);

this.setVisible(true);

this.addMouseListener(new MyMouseMonitor());

public void paint(Graphics g ) {

Iterator i = pointList.iterator();

while(i.hasNext()) {

Point p = (Point)i.next();

g.setColor(Color.BLACK);

g.fillOval(p.x, p.y, 10, 10);

public void addPoint(Point p) {

pointList.add(p);

class MyMouseMonitor extends MouseAdapter{

public void mousePressed(MouseEvent e) {

TFpaint f = (TFpaint) e.getSource();

f.addPoint(new Point(e.getX(),e.getY()));

f.repaint();

基本要求:实现在一个界面上鼠标每点击一下,就会生成一个点,

基本思路:要有一个Frame,用来显示界面,由于需要在这个界面上产生点,所以我们有鼠标点击产生点,即有对鼠标的监听,而我们要在监听后产生点,所以我们有Paint方法用来绘图,而他绘制的图就是产生一个点。

其中较为麻烦的就是,必须在指定位置(即鼠标点击的位置产生一个点)如何来找到这个位置,在此时我们在MouseMonitor中利用e.getSource获得信息,其中e是点击这个事件发生时,我们把他包装成一个类,传输给Monitor(其内部含有事件处理方法)

注:在Frame中我们要显示多个点,所以我们建立了一个ArrayList,用来存储点类型数据,在Frame中存储的过程就相当于画在了上面,

getSource是重新定义到一个新的来源,如上文,我们把e的getSource赋值给了f(一个Frame)相当于对frame进行添加,即Frame拿到了属于Monitor的画笔,我们通过e.getx,e和e.gety,进行定位,x,y,确定的就是鼠标点击的点,addpoint,相当于点一下在Frame上添加一个点,而print就是把哪些点用圆圈表示出来,

[!--empirenews.page--]

由于点数据是用ArrayList存储的所以对应的我们进行索引的时候用了Iterator,只要在列表里有一个点就用圆圈表示出来。

repaint,是将画面重新显示出来,感觉相当于刷新界面,如果没有,在界面上虽然有点但是他不显示,只有重传界面(即界面刷新时才会出现)

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

转载:非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“黎青松SEO博客”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java GUI,repaint()方法可以用来刷新组件的显示。当您需要在组件上进行绘制时,或者需要在组件上进行动画效果时,通常会使用repaint()方法来触发组件的重新绘制。 在使用repaint()方法时,您可以选择重载组件的paint()方法,在该方法进行绘制操作。您还可以选择使用Graphics类提供的各种绘制方法,如drawLine()、drawRect()、fillRect()等来绘制图形。 以下是一个简单的示例代码,演示如何在Java GUI使用repaint()方法来刷新组件: ``` import javax.swing.*; import java.awt.*; public class RepaintExample extends JFrame { private JPanel panel; public RepaintExample() { initUI(); } private void initUI() { // 创建一个自定义的JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 绘制一个矩形 g.drawRect(10, 10, 50, 50); } }; add(panel); // 创建一个按钮,用于触发重新绘制操作 JButton button = new JButton("Repaint"); button.addActionListener(e -> { panel.repaint(); }); add(button, BorderLayout.SOUTH); // 设置窗口的大小和可见性 setTitle("Repaint Example"); setSize(200, 200); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new RepaintExample(); } }); } } ``` 在该示例代码,我们创建了一个自定义的JPanel,并在该面板重载了paintComponent()方法,在该方法绘制了一个矩形。然后,我们创建了一个按钮,用于触发重新绘制操作。当用户单击按钮时,我们使用panel.repaint()方法来触发JPanel的重新绘制操作。这将导致JPanel的paintComponent()方法被调用,并在该方法重新绘制矩形。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值