0
這是執行所有繪圖的代碼,但它只繪製了一半的箭頭。當它是一個垂直的箭頭(北或南)時,它會切斷左側,當它是水平的(東或西)時,它會切割頂部,兩者都集中在頂端;成爲完美的半個箭頭。只有一半繪圖使用drawPolygon顯示
public void paint(Graphics g) {
setSize(100, steps * 50);
for (int i = 1; i < steps + 1; i++) {
y = i * 20;
if (directions.peek() == "North") {
int[] xNPoints = {x, x + 6, x + 2, x + 2, x + 2, x + 2, x + 6};
int[] yNPoints = {y - 5, y, y, y, y + 10, y, y};
g.drawPolygon(xNPoints, yNPoints, 7);
}
else if (directions.peek() == "East") {
int[] xEPoints = {x + 10, x + 5, x + 5, x - 5, x - 5, x + 5, x + 5};
int[] yEPoints = {y, y + 6, y + 2, y + 2, y + 2, y + 2, y + 6};
g.drawPolygon(xEPoints, yEPoints, 7);
}
else if (directions.peek() == "South") {
int[] xSPoints = {x, x + 6, x + 2, x + 2, x + 2, x + 2, x + 6};
int[] ySPoints = {y + 5, y, y, y - 10, y - 10, y, y};
g.drawPolygon(xSPoints, ySPoints, 7);
}
else if (directions.peek() == "West") {
int[] xWPoints = {x - 5, x, x, x + 10, x + 10, x, x};
int[] yWPoints = {y, y + 6, y + 2, y + 2, y + 2, y + 2, y + 6};
g.drawPolygon(xWPoints, yWPoints, 7);
}
g.drawString((String)directions.pop(), 5, y + 5);
該計劃的目標是返回一組以相反的順序用戶提供的方向,我有很多的清理(添加例外,清理GUI),但所有的代碼除了我剛剛提供的是用於提示和存儲用戶輸入的步數以及它們是什麼。
字符串比較絕對是一個疏忽。謝謝。我仍然在學習這些圖形用戶界面的基本知識,而我們的老師也很少涉及它,所以我認爲這個資源應該是有幫助的。謝謝。但是我找不到你說過的重複帖子。我可以獲得鏈接嗎? – user2880732
在你的問題的頂部,現在有一個鏈接... – MadProgrammer
這不是我在這裏問的。我意識到我不應該使用==運算符,現在我改變了它。問題仍然是,只有一半的圖形顯示出來,並且在開始繪製後出現無限循環的錯誤。 – user2880732