【发布时间】:2016-06-01 11:35:57
【问题描述】:
我在项目中使用的一些自定义组件遇到问题。它画得很好,但是现在我想找到某种颜色的第一个像素的坐标,并且遇到了一些麻烦。
这是我的组件代码:
class DrawPad extends JComponent {
private LinkedList<Line> lines = new LinkedList<>();
DrawPad() {
setDoubleBuffered(true);
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
lines.add(new Line());
lines.getLast().add(e.getPoint());
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
lines.getLast().add(e.getPoint());
repaint();
}
});
}
void clear() {
lines.clear();
repaint();
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.BLACK);
if (!lines.isEmpty()) {
for (Line line : lines) {
// TODO
LinkedList<Point> points = line.getPoints();
Point previous = points.getFirst(), current = previous;
for (int i = 1; i < points.size(); i++) {
current = points.get(i);
g.drawLine(previous.x, previous.y, current.x, current.y);
previous = current;
}
}
}
}
}
我知道它可能可以优化,但现在不是那么重要。
谁能帮我写一个搜索特定颜色的第一个像素的方法?
我最近发现它必须与BufferedImage 做一些事情,但不知道如何实现它。任何帮助,将不胜感激。
【问题讨论】:
标签: java swing colors drawing pixel