我想知道当用户点击三角形时如何用颜色填充三角形。
到目前为止,我使用txt文件作为输入文件来读取要在屏幕上绘制的三角形的坐标。
答案 0 :(得分:1)
很久以前我做过类似的事情。here's something that might help
答案 1 :(得分:0)
不确定你的“环境是什么”...
扩展JPanel 添加MouseAdapter以捕获mouseClicked方法中的坐标,并将它们保存在面板中的数组中 重写drawComponent方法以绘制三角形。 像
这样的东西class MyPanel extends JPanel {
private int count = 0;
private Point[] points = new Point[3];
MyPanel() {
setBackground(Color.WHITE);
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
if (count == points.length) {
for (int i = 1; i < points.length; i++) {
points[i-1] = points[i];
}
count -= 1;
}
points[count] = e.getPoint();
count += 1;
repaint();
}
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D gg = (Graphics2D) g;
if (count > 2) {
Polygon polygon = new Polygon();
for (int i = 0; i < count; i++) {
polygon.addPoint(points[i].x, points[i].y);
}
gg.setColor(Color.BLUE);
gg.fill(polygon);
}
}
}
这不完整,但是......