// Ich versuche zu lernen, wie man Objekte in Java zeichnet. Ich werde besser darin, aber sobald ich ein Bild auf dem Bildschirm habe, habe ich Probleme, es zu manipulieren. Die Zahlen, die ich eingegeben habe, ergeben keinen Sinn für die Formen. Zumindest für mich nicht. Wenn Sie in der Algebra eine Zahl auf der X-Achse erhöhen, wird sie nach rechts verschoben, und wenn Sie eine Zahl auf der Y-Achse erhöhen, wird sie erhöht. Das ist nicht was hier passiert. Kann mir jemand erklären, wie das geht? Ich bin immer noch neu in Java, also je mehr Erklärungen und Details, desto besser. Ich versuche ein paar Stunden in meinem Sommer zu verbringen um Java zu lernen und manchmal wird es ein wenig frustrierend. Jede Hilfe wird sehr geschätzt.Verwendung der Koordinatenebene im JFrame
Antwort
Hier ist der Co-ordinates
Start aus der TOP LEFT SIDE
des Bildschirms, wie Sie Wert von X
erhöhen, werden Sie in Richtung RIGHT SIDE
bewegen, obwohl, wie Sie den Wert Y
erhöhen, werden Sie DOWNWARDS
bewegen. Hier ist ein kleines Beispielprogramm, damit Sie das etwas besser verstehen, klicken Sie einfach irgendwo drauf.
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);
}
}
Oh cool. Das ist toll. –
@MartinMarino: Danke und LÄCHELN LÄCHELN :-) –
Der Code sagt, dass es keine Symbolklasse DrawingBase finden kann. Die Fehler sind private "DrawingBase" -Leinwand; canvas = new "DrawingBase"(); Die Zitate sollen zeigen, woher der eigentliche Fehler kommt. Ich schätze die Hilfe, aber ich habe keine Ahnung, wie ich das beheben kann. Könnte ich ein wenig mehr Hilfe bekommen? –
- 1. JFrame im Vollbild Java
- 2. GPS-Koordinaten in Koordinatenebene umwandeln
- 3. python distance formula Koordinatenebene Fehler
- 4. Wie man JDesktopPane im Hintergrund in JFrame
- 5. Verwenden von paintComponent() im Standard-JFrame-Bedienfeld
- 6. Größe eines Jframe im Jpanel-Programm festlegen?
- 7. Verwendung der Seitennummerierung im Bootstrap
- 8. Festlegen eines Anfangsverzeichnisses für JFrame unter Verwendung des Schlüsselworts "super"
- 9. Java JFrame Frage
- 10. aktualisieren JFrame Java ohne neue JFrame
- 11. Warum arbeitet der Java-Server mit einem JFrame im Debug-Modus, aber nicht im normalen Ausführungsmodus?
- 12. Aktivieren von jframe von einem anderen jframe
- 13. Probleme mit der versteckten Ecke von JFrame
- 14. Zeichnen eines Dreiecks in einer Koordinatenebene mit seinen drei Seiten
- 15. Position der Maus außerhalb von JFrame finden?
- 16. Herstellung Fortschrittsbalken mit der Taste über JFrame
- 17. Schließen eines JFrame mit der Tastatur
- 18. Wie transferiere ich Objekte von Jframe zu einem anderen Jframe?
- 19. Verwendung der Systemfunktion im cpp-Programm
- 20. Verwendung der Ausbeute zweimal im Contextmanager
- 21. Verwendung der Graphentheorie im Fahrzeug-Routing Problem
- 22. Wie ändere ich JPanel in einem JFrame im laufenden Betrieb?
- 23. JDK7 translucency + jframe + jcombobox
- 24. Wie mache ich einen JFrame wirklich im Vollbildmodus?
- 25. Disable JFrame minimieren Taste
- 26. Problem mit der Revalidierung eines Jframe
- 27. JFrame Eingeschränkt wegen Einschränkung der erforderlichen Bibliothek
- 28. JFrame Titel neu streichen
- 29. Mehrere JFrame-Instanzen
- 30. Sollte ein JFrame immer im EDT gestartet werden
In Java befindet sich (0,0) in der oberen linken Ecke. – Jeffrey
Diese [link] (http://docs.oracle.com/javase/1.4.2/docs/guide/2d/spec/j2d-intro.html#wp61857) könnte helfen. – bacchus
Dieses [Beispiel] (http://stackoverflow.com/a/9373195/230513) beschreibt die Umwandlung zwischen kartesischen und Bildschirmkoordinaten. – trashgod