我想畫一條線但我不能使用「drawline」,只能使用「fillRect」。 當我通過mouseclick事件從用戶那裏讀取一個點並放置一個矩形時,我有以下代碼。Java圖形使用fillRect繪製一條線
我需要做相同的,但通過繪製一條從A點的長方形,B點
這裏畫一條線是我的代碼:
package graphics_draw_rec;
import java.awt.*;
import java.awt.Point;
import javax.swing.*;
import java.awt.event.*;
public class DrawRectangleOnMouseClick extends JPanel{
MouseHandler mouseHandler = new MouseHandler();
Point p2 = new Point(0, 0);
boolean drawing;
public DrawRectangleOnMouseClick(){
this.setPreferredSize(new Dimension(500, 400));
this.addMouseListener(mouseHandler);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillRect(p2.x, p2.y, 5, 5);
}
private class MouseHandler extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
drawing = true;
p2 = e.getPoint();
repaint();
}
public void mouseReleased(MouseEvent e) {
drawing = false;
p2 = e.getPoint();
repaint();
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Draw Rectangle On Mouse Click");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new DrawRectangleOnMouseClick());
f.pack();
f.setVisible(true);
}
}
爲什麼你不能使用'drawLine'?有什麼問題? – Radiodef
無關說明:如果您要學習Java中的GUI編程,並且沒有使用Swing的特定要求,請考慮使用新的JavaFX GUI工具箱,因爲Oracle不會進一步開發Swing,而是推動JavaFX。 – Puce
您確定這不是針對http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm嗎? – Marco13