2
我正在學習Java圖形。我試圖畫出簡單的數字。不過我注意到,下面的代碼將無法正確得出:爲什麼不能用fillPolygon()繪製一個矩形
public class Draw extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
int[] xpoints = new int[] { 20, 50, 80 };
int[] ypoints = new int[] { 40, 10, 40 };
g.fillPolygon(xpoints, ypoints, 3);
int[] recXp = new int[] { 20, 80, 20, 80 };
int[] recYp = new int[] { 50, 60, 50, 60 };
g.fillPolygon(recXp, recYp, 4);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
Draw panel = new Draw();
frame.add(panel);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
}
}
爲了達到我想要什麼,我不得不使用
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Draw extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
int[] xpoints = new int[] { 20, 50, 80 };
int[] ypoints = new int[] { 40, 10, 40 };
g.fillPolygon(xpoints, ypoints, 3);
g.fillRect(20, 50, 60, 10);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
Draw panel = new Draw();
frame.add(panel);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
}
}
這究竟是爲什麼?我錯過了什麼嗎?對不起,如果這是一個微不足道的問題,我只是想更好地理解Java。
我它在改變爲 \t \t t [] recXp = new int [] {20,80,80,20}; \t \t int [] recYp = new int [] {50,50,60,60}; 及其正確顯示,抱歉的愚蠢問題:) – Moe
有沒有愚蠢的問題,如果你想學習。 – c0der
@moe,同意c0der,有時使用方法會讓我們感到困惑。你創建了一個很好的簡單[mcve]來測試顯示你所嘗試的方法。我們很高興在您做出這些努力時提供幫助。 – camickr