//我試圖學習如何在java中繪製對象。我越來越好,但是一旦我在屏幕上看到一張圖像,我就無法操縱它。我輸入的數字對形狀的變化沒有意義。至少對我來說他們沒有。在代數中,如果你在x軸上增加一個數字,它會向右移動,如果你在y軸上增加一個數字,它會增加。這不是什麼在這裏發生。任何人都可以向我解釋這是如何工作的?我對Java還是一個新手,所以更多的解釋和細節會更好。我想在我的暑假裏每天花幾個小時學習java,有時候會感到有點沮喪。任何幫助是極大的讚賞。在JFrame中使用座標平面
回答
這裏從屏幕的TOP LEFT SIDE
,因爲當你增加的X
價值,你會走向RIGHT SIDE
移動,但如果增加的Y
的價值,你就進入DOWNWARDS
的Co-ordinates
開始。下面是一個小例子程序,您可以更好地理解這一點,只需在任何地方點擊即可。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DrawingExample
{
private int x;
private int y;
private String text;
private DrawingBase canvas;
private void displayGUI()
{
JFrame frame = new JFrame("Drawing Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas = new DrawingBase();
canvas.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
text = "X : " + me.getX() + " Y : " + me.getY();
x = me.getX();
y = me.getY();
canvas.setValues(text, x, y);
}
});
frame.setContentPane(canvas);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new DrawingExample().displayGUI();
}
});
}
}
class DrawingBase extends JPanel
{
private String clickedAt = "";
private int x = 0;
private int y = 0;
public void setValues(String text, int x, int y)
{
clickedAt = text;
this.x = x;
this.y = y;
repaint();
}
public Dimension getPreferredSize()
{
return (new Dimension(500, 400));
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString(clickedAt, x, y);
}
}
哦,很酷。這很棒。 –
@MartinMarino:謝謝並保持微笑:-) –
代碼是說它無法找到符號類DrawingBase。錯誤是私人的「DrawingBase」畫布; canvas = new「DrawingBase」();引號是顯示實際錯誤來自哪裏。我很感激幫助,但我不知道如何解決這個問題。我能獲得更多的幫助嗎? –
- 1. 平面座標點排序
- 2. 引用JFrame中JPanel的座標
- 3. 在座標平面上反轉Y軸?
- 4. 到平面球面座標距離
- 5. Silverlight中使用平面投影當轉換座標系統3
- 6. 獲取JFrame中JTextField的座標
- 7. 將3d座標轉換爲2D座標(平面網格)
- 8. 將GPS座標轉換爲座標平面
- 9. 雷與平面相交的座標
- 10. 四個座標的梯度? (平面)
- 11. 國家平面座標到經緯度
- 12. Can GeoServer可以使用平面座標系統
- 13. Java jframe jgraph滾動平面
- 14. 在Java中的JFrame上顯示鼠標座標
- 15. 平面法線在不同座標系中的夾角
- 16. 在極座標平面中的分段方向
- 17. JPanel和JFrame座標搞砸了
- 18. 如何在gnuplot中繪製一個平面,當它平行於座標平面之一(oxz,oyz,oxy)
- 19. 從python座標元組中查找平均座標
- 20. 如何將JButton放置在JFrame中的某個座標處
- 21. 將WSG84 GPS座標轉換爲x y平面上的笛卡爾座標
- 22. 平面點座標的六面多邊形的頂點?
- 23. 球面座標在pyqtgraph
- 24. 平行座標的實現?
- 25. 從3D座標列表中找到最合適的平面
- 26. 如何在圖形平面外創建座標軸
- 27. GIS讀取狀態平面座標並在地圖上顯示
- 28. 如何在平行座標圖中爲軸標籤使用不同的方向
- 29. 將鼠標位置映射到3d平面的座標系
- 30. 從法向矢量給出的平面到XY平面的座標映射
在Java中,(0,0)位於左上角。 – Jeffrey
此[鏈接](http://docs.oracle.com/javase/1.4.2/docs/guide/2d/spec/j2d-intro.html#wp61857)可能會有所幫助。 – bacchus
這個[示例](http://stackoverflow.com/a/9373195/230513)討論了笛卡爾和屏幕座標之間的轉換。 – trashgod