使用像素着色JPanel(非图像)

时间:2014-01-22 15:12:31

标签: java colors awt panel pixel

我想在Java中创建一个框架,我可以在其中绘制任何形状并为形状着色。我做了第一部分,现在我有一个着色图像的问题。我有一个框架,有一个面板,我直接在面板上绘制drawLine()功能。我想用像素为形状着色。如何根据像素值为面板(包含图形)着色?

*注意:这不是图像!!着色面板。我尝试了很多论坛。但一切都说关于着色图像。如何按像素为面板着色?

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.applet.*;

public class colorch extends Applet implements MouseListener {
    int oldx, oldy, x, y;
    int flag = 1;
    Panel mypanel;

    public void init() {
        mypanel = new Panel();
        add(mypanel);
        addMouseListener(this);
        Panel colorpan = new Panel();
    }

    public void mouseExited(MouseEvent e6) { }

    public void mouseEntered(MouseEvent e7) { }

    public void mousePressed(MouseEvent e8) {
        oldx = e8.getX();
        oldy = e8.getY();
    }

    public void mouseClicked(MouseEvent e) { }

    public void mouseReleased(MouseEvent e3) {
        x = e3.getX();
        y = e3.getY();
        Graphics g = getGraphics();
        g.drawLine(oldx, oldy, x, y);
    }
}

示例输出:

enter image description here

现在我想在三角形里面着色。因此,我试图通过此图像中的每个像素进行着色。

感谢。

1 个答案:

答案 0 :(得分:2)

您必须实现此类功能 - 使用flood fill algorithm

以下是来自SO的一些代码 - Flood fill using a stack