![]() | |
| | #1 (permalink) |
| such & ceza Üyelik Tarihi: 06/2006 Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
|
Shape diye bir abstract sınıf yazdım. ve bu sınıfı Circle, Rectangle gibi bir kaç sınıfa extends ediyorum. fakat aynı zamanda bu sınıflara JPanel'ide extends etmek istiyorum. tek bir sınıfa aynı anda iki sınıfı nasıl extens edebilirm ??? yada bunun yerine daha mantıklı bir yol varsa nedir nasıl yapabilirm ??? Kod: class Circle extends Shape, JPanel
__________________ EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ Ne Mutlu TÜRKÜM Diyene !!! |
| | |
| | #4 (permalink) |
| İptal Durumu Üyelik Tarihi: 12/2007
Mesaj: 892
|
Java multi inheritance desteklemiyor. Bunu C'de interfacelerle yapıyorduk, çokta sık gereken birşey değildi. Şöyle birşey deneyebilirsiniz belki, ben denemedim : class Circle extends Shape implements JPanel Siz tam olarak ne yapmak istediğinizi yazarsanız belki başka çözüm önerileri sunulabilir... |
| | |
| | #5 (permalink) |
| such & ceza Üyelik Tarihi: 06/2006 Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
|
ben bir çizim programı yapmak istiyorum. kare, daire, çizgi gibi şekiller çizen. kullanıcı boyutlarını ve koordinatlarını ekrana girecek. butonu bastığında çizim ekrana çizilecek. işte bunun için bir tane abstract Shape sınıfı oluşturdum. daha sonrada Circle, Rectangle gibi şekil sınıfları oluşturdum. çizim işlemini yapan paint metodunu Shape sınıfı içine koydum ve diğer sınıflardan (Circle, Rectangle) override ettim. fakat bu diğer sınıflarda extends Shape yaptığım için çizim yaptıramıyorum. çizimi yaptırmak için bu sınıfları extends JPanel etmem gerekiyor. bunun için netten örnekler araştırdım. bulduğum her örnek extends JPanel kullanıyordu. hatt a örneği aşağıda yazıyorum. umarım ne yapmak istediğimi ve sorunumun ne olduğunu anlatabilmişimdir. Kod: import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
class MyCanvas extends JPanel
{
public void paint(Graphics g)
{
int q1,q2,q3,q4,q5,q6,q7;
q1 = (int)(Math.random()*745);
q2 = (int)(Math.random()*745);
q3 = (int)(Math.random()*255);
q4 = (int)(Math.random()*255);
q5 = (int)(Math.random()*255);
q6 = (int)(Math.random()*255);
q7 = (int)(Math.random()*255);
g.setColor(new Color(q5,q6,q7));
g.drawRect(q1, q2, q3, q4);
}
}
public class Deneme extends JFrame
{
public static void main(String[] a)
{
final JFrame window = new JFrame();
JPanel panelUst = new JPanel();
panelUst.setBounds(0, 0, 500, 100);
panelUst.setBackground(Color.white);
JButton buton = new JButton("ŞEKİL ÇİZ");
buton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e)
{
MyCanvas panelAlt = new MyCanvas();
window.getContentPane().add(panelAlt);
panelAlt.setBounds(0, 0, 1000, 1000);
}
});
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(100, 100, 1000, 1000);
window.getContentPane().add(panelUst);
panelUst.add(buton);
window.setVisible(true);
}
}
__________________ EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ Ne Mutlu TÜRKÜM Diyene !!! |
| | |
| | #6 (permalink) | |
| such & ceza Üyelik Tarihi: 06/2006 Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
| Alıntı:
__________________ EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ Ne Mutlu TÜRKÜM Diyene !!! | |
| | |
| | #7 (permalink) |
| Eski Cevizci Üyelik Tarihi: 04/2005 Yer: samsun
Mesaj: 1,171
|
java multiple inheritance'ı sadece interface'ler aracılığı ile destekler. implementasyonun devralınması izin vermez. bu model multiple-inheritance 'sınırlı' bir şekilde izin veriyor, ama multiple-inheritance ile gelen problemleri de sıfıra indiriyor. (metod adlarını çakışması, diamon problemi gibi ). bu yaklaşımın destekleyicileri olduğu gibi, buna karşı olanlar da var. ama yukarıdaki problem farklı : Shape sınıfını JFrame den türetmek demek : "her şekil bir penceredir" iddiasında bulunmaktır. (yani generalization ya da 'is a' ilişkisi kuruyorsunuz). bu yanlış olur. ama bir Frame bir Shape nesnesi 'içerebilir' ve onu ekrana çizebilir buna da Aggregation deniyor. yani class MyFrame extends JFrame{ ... private Shape shape; // çizilecek şekil ... } |
| | |
| | #9 (permalink) |
| İptal Durumu Üyelik Tarihi: 12/2007
Mesaj: 892
|
Zaten mr1yh1'in de belirttiği gibi, java multi inheritance'i sadece interfaceler aracılığıyla destekliyor, onun dışında yapılmak istenilen şey belirtildiği gibi her sınıf bir JFrame'dir demek manasına gelir, aslında bu yanlış bir tanım değildir ancak başka amaçlarla kullanılacak sınıflarında JFrame'den türemesine yol açar, bu da müdahale yolunu kapatır, doğru birşey değildir... Yapılamaz değildir ancak yapılması doğru değildir... Bu durumda istenilen şey tam olarak kümeleme oluyor ancak bu da ihtiyacı karşılıyor mu bilmiyorum... |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| POST etmede sorun | mk1641 | PHP | 3 | 10/06/2007 03:39 |
| include etmede sorun | algoritma | PHP | 6 | 20/05/2007 14:56 |
| joomla virtuemart bileşeni usd euro ytl aynı anda kullanmak kullanmak | zafer_turan | Uygulama Yazılımları / Hazır Betikler | 0 | 05/08/2006 11:02 |
| dosya download etmede sorun??? | sali | Javascript / DHTML / Ajax | 2 | 31/07/2004 15:04 |
| class (sınıf) kullanmak.. | TanKian | PHP | 2 | 06/11/2003 17:20 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |