wmaraci reklam

Java GUI hakkında ufak bir yardım..

4 Mesajlar 852 Okunma
pst.net
wmaraci reklam

Genc Genc Computer Engineer Kullanıcı
  • Üyelik 30.10.2011
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad Ö** G**
  • Mesajlar 1606
  • Beğeniler 760 / 441
  • Ticaret 49, (%98)
Herkese iyi geceler ,

okulda hocamızın verdiği bir ödevi saatlerce uğraştım ama hala istediğimi yapamadım.
Hocamızın verdiği ödev: fare ile bir noktaya dokunup ikinci bir noktaya dokunduğumuzda bir çizgi çizilecek ve sonrasında fare ile bir daha dokunulup başka bir yere kadar çizgi çizecek.

Tam anlatamadım sanırım amaç çizgiler ile bir eşkenar üçgen/dikdörtgen oluşturup , son çizgi ilk çizginin başladığı yere geldiğinde kesiştiğinde program bana uyarı vermeli.

Çizgi çizdirebildim istediğim şekilde ancak 2.bir çizgiyi çizdiremedim :/

umarım anlatabildim teşekkürler şimdiden :)
 

 

wmaraci
reklam

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
AWT, Swing, JavaFX ne kullanıyorsunuz?
Genc

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

Genc Genc Computer Engineer Kullanıcı
  • Üyelik 30.10.2011
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad Ö** G**
  • Mesajlar 1606
  • Beğeniler 760 / 441
  • Ticaret 49, (%98)

YazılımMimarı adlı üyeden alıntı

AWT, Swing, JavaFX ne kullanıyorsunuz?

Hocam Swing.
Ben biraz uğraştım istediğim şekilde(basılı tutmak değil sadece sağ click ile bir noktayı sol click ile bir noktayı ayarlayabiliyorum) bir çizgi çizebiliyorum fare ile ama 2.bir çizgiyi çizdiğimde birinci kayboluyor . Bunun sağlanması için dizi kullanmam gerek .Ancak drawline komutunumu dizide kullanacağım bu yönde bir mantık yürütemedim.

Yazdığım kodları ekliyorum hocam.

public static void main(String[] args) {
BizimPencere x = new BizimPencere();
x.setSize(300, 200);
x.setVisible(true);
x.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public class BizimPencere extends JFrame implements MouseListener {

private int x1, y1, x2, y2;

@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(x1, y1, x2, y2);
}

public BizimPencere() {
addMouseListener(this);
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
}

public void mouseClicked(MouseEvent e) {
if (e.getButton() == e.BUTTON1) {
x1 = e.getX();
y1 = e.getY();
}
else if (e.getButton() == e.BUTTON3) {
x2 = e.getX();
y2 = e.getY();
}
repaint();
}
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
global bir değişken tanımlamalısın.

Mouse ile tıkladığın koordinatları tutmak için.


Her mouse ile tıklanılan nokta için tanımladığın -> private int x1, y1, x2, y2; iki nokta için tutmuşsun.


Basit düşünelim.. Sen her mouse ile tıklanlılan noktayı bilmen gerekiyorki öncekinden sonrakine geçiş yapabilesin.


public class Point{

private int currentXPoint;
private int currentX2Point;
private int currentYPoint;
private int currentY2Point;

public Point(){}

public Point(int currentX, int currentX2, int currentY, int currentY2){
this.currentXPoint = currentX;
this.currentX2Point = currentX2;
this.currentYPoint = currentY;
this.currentY2Point = currentY2;
}

public int GetCurrentXPoint(){
return currentXPoint;
}

public void SetCurrentXPoint(int currentXPoint){
this.currentXPoint=currentXPoint;
}

public int GetCurrentX2Point(){
return currentX2Point;
}

public void SetCurrentX2Point(int currentX2Point){
this.currentX2Point=currentX2Point;
}

public int GetCurrentYPoint(){
return currentYPoint;
}

public void SetCurrentYPoint(int currentYPoint){
this.currentYPoint=currentYPoint;
}

public int GetCurrentY2Point(){
return currentY2Point;
}

public void SetCurrentY2Point(int currentY2Point){
this.currentY2Point=currentY2Point;
}

}



----

public class BizimPencere extends JFrame implements MouseListener {

private List pointList = new ArrayList();

public BizimPencere() {
addMouseListener(this);
pointList.add(new Point(0,0,0,0));
}


@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(x1, y1, x2, y2);
}

public void mouseClicked(MouseEvent e) {

//X,Y koordinatlarını tıklama ile alıp, Point objesini oluşturup, listeye ekle
Point current = new Point(currentX,currentX2,currentY,currentY2);
pointList.add(current );
//çiz.. çizerken listenin son elemanını alman gerek

//Listenin son elemanı ve bir önceki

int listSize = pointList.size();
Point sonuncuNokta = pointList.get(listSize -1);
Point birOncekiNokta= pointList.get(listSize -2);

//Önceki yeri bılıyorsun, sonuncu noktayıda drawline metodu işini görecektir.

}



}



Kodu IDE üzerinden yazmadım syntax hataları olabilir.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
Mersin evden eve nakliyat
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al