Sürüklenebilir Çizimler (Java)
-
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.MouseInputAdapter;
public class GraphicDragAndDrop extends JPanel {
Rectangle rect = new Rectangle(100,100,150,75);
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.blue);
g2.draw(rect);
}
public void setRect(int x, int y) {
rect.setLocation(x, y);
repaint();
}
public static void main(String[] args) {
GraphicDragAndDrop test = new GraphicDragAndDrop();
new GraphicDragController(test);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(test);
f.setSize(400,400);
f.setLocation(100,100);
f.setVisible(true);
}
}
class GraphicDragController extends MouseInputAdapter {
GraphicDragAndDrop component;
Point offset = new Point();
boolean dragging = false;
public GraphicDragController(GraphicDragAndDrop gdad) {
component = gdad;
component.addMouseListener(this);
component.addMouseMotionListener(this);
}
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
Rectangle r = component.rect;
if(r.contains(p)) {
offset.x = p.x - r.x;
offset.y = p.y - r.y;
dragging = true;
}
}
public void mouseReleased(MouseEvent e) {
dragging = false;
}
public void mouseDragged(MouseEvent e) {
if(dragging) {
int x = e.getX() - offset.x;
int y = e.getY() - offset.y;
component.setRect(x, y);
}
}
}
euler yolu ile ilgili bi proje ile uraşıyorum,dragdrop için java dökümantasyonunu kurcaladım ama bişey çıkmadı bende bunu buldum googledan.
Burda adam rectangle oluşturmuş falan yapmış... Benim yapmaya çalıştığım şey şu;ben bu yukarıda verdiğim kodu nasıl bu arayüze oturturumda yaparım bu işi? Vaktim var,ipucu lazım bana,ipucu verin uraşırım :)
Kafamdakileride buraya darmadağın yazayım;
rectangle bi tür olduğu için üzerinde çalışması daha rahat ama graflarla ilgili bişey olduğu için daire kullanmak istiyorum bu bi sorun....
ikinci bi rect çizdirmeyi denedim g2 ile ama ikinci dikdörtgen hareket etmedi,sanırım GraphicDragAndDrop sınıfından bi nesne oluşturup onunla birşeyler yaparak ekliyor sürüklemeyi ama çözemedim.....
ben daha çok tek bi köşe ve tek bir bağ sınıfı olsun vertex ekle dendiğinde belirtilen koordinatlarda sürüklenebilir bir daire oluşturulsun istiyorum. Böyle her yeni çizdirilecek şey için ayrı kod olmadan direk köşeEkle() metodu ile esnek bişey yapmalıyım.
Her türlü fikir,öneri,ipucu kabul edilir :-)
-
Bir up çeksem belki duyulur sesim :)
-
java bilmem ama dikdörtgen daire artık her neyse tıklantıktan sonra merkezini yada ağırlık merkezini mousenin koordinatları yaparsan gelir herhalde ama bilmiyorum java
-
GraphicDragAndDrop test = new GraphicDragAndDrop();
şunu yeni diktortgen eklerken çağırırsan sıkıntı olmaz hepsini çağırırdan sürükleme olayında
test.Click += new EventHandler(testMouse_Click) event olarak çağırman gerekir javacası nasıl olur denemedim bilemiyorum :)
-
SinusX bunu yazdı:
-----------------------------GraphicDragAndDrop test = new GraphicDragAndDrop();
şunu yeni diktortgen eklerken çağırırsan sıkıntı olmaz hepsini çağırırdan sürükleme olayında
test.Click += new EventHandler(testMouse_Click) event olarak çağırman gerekir javacası nasıl olur denemedim bilemiyorum :)
-----------------------------c#ta event eklemeyi ben de biliyorum da javada sıkıntı azcık :D
-
javanın grafik ve arayüzünü kullanmak başlı başına bir iş. javada yapılmış uygulamaları gördükçe neden bu kadar zor diyorum. standart bir şeyi yok. bir kitap tavsiyesi edebilirim. video game programming evil genius bu kitapta grafik uygulamaları oyuna dönüştürülmesi gayet güzel anlatılıyor. belki işine yarayan bir şeyler vardır. bu işi yaparsın umarım ve nasıl yapıldığınıda anlatırsın. iyi çalışmalar.
-
Esquire bunu yazdı:
-----------------------------javanın grafik ve arayüzünü kullanmak başlı başına bir iş. javada yapılmış uygulamaları gördükçe neden bu kadar zor diyorum. standart bir şeyi yok. bir kitap tavsiyesi edebilirim. video game programming evil genius bu kitapta grafik uygulamaları oyuna dönüştürülmesi gayet güzel anlatılıyor. belki işine yarayan bir şeyler vardır. bu işi yaparsın umarım ve nasıl yapıldığınıda anlatırsın. iyi çalışmalar.
-----------------------------http://www.mediafire.com/?henqmltddij
Dediğin kitabı buldum,biraz kurcalıyım :) bitirmek zorundayım çünkü sene sonu ortalamasının %24ü bu ödev. ayrıca SARIyla birlikteyiz bu ödevde,bitmezse kafamı sağlam ütüler :D Bittiği zaman anlatım yaparım tabikide :)
-
Dur bakıyım akşama az kurcalıyım şunu euler çevre filan diyince ilgimi çekti :)
-
bir uplayalim bakalım :D