// Próbuję nauczyć się rysować obiekty w języku Java. W tym się poprawiam, ale gdy dostaję obraz na ekranie, mam problem z manipulowaniem nim. Liczby, które wstawiam, nie mają żadnego sensu w sposobie, w jaki kształtują się kształty. Przynajmniej mi nie. W algebrze, jeśli zwiększysz liczbę na osi x, to po prawej stronie i jeśli zwiększysz liczbę na osi Y, wzrośnie ona. To nie dzieje się tutaj. Czy ktoś może mi wyjaśnić, jak to działa? Wciąż jestem nowicjuszem w Javie, więc im więcej wyjaśnień i szczegółów, tym lepiej. Próbuję poświęcić kilka godzin dziennie na moje lato, aby nauczyć się java i czasami robi się trochę frustrujące. Każda pomoc jest bardzo doceniana.Używanie płaszczyzny współrzędnych w JFrame
Odpowiedz
Oto początek od TOP LEFT SIDE
ekranu, tak jak zwiększyć wartość X
, będzie poruszać się w kierunku RIGHT SIDE
, choć, jak zwiększyć wartość Y
, można przenieść DOWNWARDS
Co-ordinates
. Oto mały przykład Programu, abyś mógł to lepiej zrozumieć, po prostu kliknij go w dowolnym miejscu.
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);
}
}
Och, fajne. To jest świetne. –
@MartinMarino: Thankyou i KEEP SMILING :-) –
Kod mówi, że nie może znaleźć bazy symboli klasy symboli. Błędy są nieparzystym płótnem "DrawingBase"; canvas = new "DrawingBase"(); Cytaty mają pokazywać, skąd pochodzi rzeczywisty błąd. Doceniam pomoc, ale nie mam pojęcia, jak to naprawić. Czy mogę uzyskać trochę więcej pomocy? –
- 1. Konwersja współrzędnych GPS do współrzędnych płaszczyzny
- 2. Używanie współrzędnych geograficznych jako współrzędnych wierzchołków w pakiecie igraph r
- 3. Używanie dwóch JPanels w jednym JFrame
- 4. Okno rysowania w JFrame
- 5. Jak narysować obraz w JPanel lub JFrame?
- 6. Wyłącz JFrame po otwarciu nowego JFrame
- 7. Jak zrobić przycisk JFrame otworzyć inną klasę JFrame w Netbeans?
- 8. Forma i przedstawienie ruchu płaszczyzny sześciokątnej
- 9. Określanie punktu przecięcia trójkąta i płaszczyzny
- 10. Reprezentacja współrzędnych w GeoAlchemy2
- 11. Jak wyświetlić BufferedImage w JFrame?
- 12. JPanel vs JFrame w Javie
- 13. WPF: Konwersja współrzędnych ekranu i współrzędnych WPF
- 14. Konwersja współrzędnych UIKit do współrzędnych SpriteKit
- 15. Stosowanie współrzędnych pikseli do współrzędnych ekranu
- 16. Układ współrzędnych aparatu otworkowego model
- 17. Dodawanie obrazu do JFrame
- 18. Jak TDD JFrame?
- 19. MouseListener na JFrame
- 20. Wyłącz przycisk minimalizacji JFrame
- 21. Jak zmienić ikonę JFrame
- 22. Przedłużanie ramki JFrame
- 23. Jak układ współrzędnych kamery jest zorientowany na OpenCV?
- 24. Dodaj kontrolkę WebView w Swing JFrame
- 25. Jak uruchomić JFrame zmaksymalizowane w JAVA?
- 26. Ustaw położenie JDialog w odniesieniu do JFrame
- 27. Ustaw JFrame na środek ekranu w NetBeans
- 28. Jak zmienić ikonę Java w JFrame
- 29. Jak ustawić wiele paneli w JFrame
- 30. Tworzenie JTextArea lub JEditorPane w przewijarce JFrame
W Javie (0,0) znajduje się w lewym górnym rogu. – Jeffrey
Ten [link] (http://docs.oracle.com/javase/1.4.2/docs/guide/2d/spec/j2d-intro.html#wp61857) może pomóc. – bacchus
Ten [przykład] (http://stackoverflow.com/a/9373195/230513) omawia przekształcanie między kartezjańskim a współrzędnymi ekranu. – trashgod