// Estoy tratando de aprender a dibujar objetos en Java. Me estoy volviendo mejor, pero una vez que obtengo una imagen en la pantalla, tengo problemas para manipularla. Los números que pongo no tienen sentido de cómo están saliendo las formas. Al menos para mí no. En álgebra, si aumentas un número en el eje x, va hacia la derecha y si aumentas un número en el eje y, sube. Eso no es lo que está pasando aquí. ¿Alguien puede explicarme cómo funciona esto? Todavía soy nuevo en Java, así que cuanta más explicación y detalles, mejor. Intento tomarme un par de horas al día durante mi verano para aprender java y algunas veces se vuelve un poco frustrante. Cualquier ayuda es muy apreciada.Usando el plano de coordenadas en el JFrame
Respuesta
Aquí el Co-ordinates
inicio de la TOP LEFT SIDE
de la pantalla, ya que a medida que aumenta el valor de X
, se moverá hacia RIGHT SIDE
, aunque a medida que aumenta el valor de Y
, pasará DOWNWARDS
. Aquí hay un pequeño ejemplo de Programa para que entiendas esto un poco mejor, simplemente haz clic en él en cualquier lugar.
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 genial. Esto es genial. –
@MartinMarino: Gracias y MANTENGASE SONRIENDO :-) –
El código indica que no puede encontrar la clase de símbolo DrawingBase. Los errores son lienzo privado "DrawingBase"; canvas = new "DrawingBase"(); Las comillas son para mostrar de dónde proviene el error real. Agradezco la ayuda, pero no tengo idea de cómo solucionar esto. ¿Podría obtener un poco más de ayuda? –
- 1. Convertir coordenadas de GPS para coordinar el plano
- 2. Coordenadas de intersección entre Ray y Plano
- 3. Obtener el plano del dispositivo en relación con el plano de tierra con el acelerómetro
- 4. Mostrar imagen en Java JFrame
- 5. Cómo cambiar el icono de JFrame
- 6. Establecer el color de fondo para JFrame
- 7. ¿Cómo leer el mensaje entrante usando el servicio en segundo plano en android?
- 8. JFrame: obtener el tamaño sin fronteras?
- 9. ¿Maximiza y evita el cambio de tamaño en un JFrame?
- 10. No se pueden obtener coordenadas de GPS usando Javascript en el navegador en Android
- 11. JFrame en Java
- 12. MouseListener en JFrame
- 13. Dibujando un triángulo en un plano de coordenadas dados sus tres lados
- 14. Cómo rotar el sistema de coordenadas?
- 15. Haciendo el JTextArea o JEditorPane en un JFrame desplazable
- 16. Java, JFrame: getWidth() devuelve 0
- 17. cómo descargar el archivo con el servicio en segundo plano?
- 18. ¿Cómo puedo actualizar o volver a cargar el JFrame?
- 19. Cómo comprobar si algunas coordenadas caen en otro radio de coordenadas usando PHP solamente
- 20. Magento: reconstruir el catálogo plano mediante programación
- 21. ¿De dónde viene el término archivo plano?
- 22. Deshabilitar JFrame cuando se abre un nuevo JFrame
- 23. ¿Ejecutando el servidor de Webrick en segundo plano?
- 24. Para identificar el proceso en segundo plano y ponerlo en primer plano en C++ WIN32
- 25. Cierre programático de JFrame
- 26. Cómo mostrar el visor JasperReports dentro de un JPanel/JFrame ...?
- 27. Oscilación: establecer el tamaño del área de contenido JFrame
- 28. Obtención de coordenadas de celda en el patrón Honeycomb
- 29. ¿Cómo puedo eliminar solo el botón Maximizar de un JFrame?
- 30. Obtener el país desde las coordenadas?
En Java, (0,0) está en la esquina superior izquierda. – Jeffrey
Este [enlace] (http://docs.oracle.com/javase/1.4.2/docs/guide/2d/spec/j2d-intro.html#wp61857) podría ayudar. – bacchus
Este [ejemplo] (http://stackoverflow.com/a/9373195/230513) describe la transformación entre coordenadas cartesianas y de pantalla. – trashgod