Yaptığım bir proje için, biri JFrame oluşturan ve diğeri JFrame'e eklenmesi gereken bir görüntü içeren 2 sınıf oluşturmam gerekiyor.JFrame'e diğer sınıflardan resim ekleme
Benim JFrame oluşturarak sınıf Sürücü denilen ve görünümü de şu:
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Driver {
private JFrame win;
private Animals animals = new Animals();
private BirdButton nextBtn, enlargeBtn, shrinkBtn, moveToBtn;
private JTextField field;
public Driver() {
win = new JFrame("Angry Animal Name Game");
win.setBounds(100, 100, 600, 600);
win.setLayout(null);
win.setVisible(true);
nextBtn = new BirdButton("NEXT", 10, 10, animals);
win.add(nextBtn, 0);
enlargeBtn = new BirdButton("ENLARGE", 10, 60, animals);
win.add(enlargeBtn, 0);
shrinkBtn = new BirdButton("SHRINK", 10, 110, animals);
win.add(shrinkBtn, 0);
field = new JTextField();
field.setBounds(10, 250, 100, 20);
win.add(field, 0);
moveToBtn = new BirdButton("MOVETO", 10, 275, animals, field);
win.add(moveToBtn, 0);
win.add(animals, 0);
animals.recenter();
win.repaint();
}
}
Sonra biraz kuşların görüntüsünü içeren ayrı bir sınıf Hayvanlar, var. Bu görüntünün JFrame'imde görünmesini istiyorum, ancak kodum çok sıcak çalışmıyor gibi görünüyor. Hayvanlar şuna benzer:
Hayvanlar yana
public class Animals extends Image {
public Circle selector;
public Image birds;
public Animals(){
birds = new Image(225,200,150,200);
birds.setImage("AngryBirds.png");
selector = new Circle(70,70,birds.getX(),birds.getY());
selector.setThickness(5);
birds.add(selector,0);
}
public void recenter(){
birds.setLocation((600-birds.getWidth()/2),(600-birds.getHeight()/2));
}
}
Görüntü uzanır Ben görüntüyü kendisi ya da ne yapmam gerekir Hayvanlar yapmak için bu komutu kullanmak mümkün? Sürücüyü herhangi bir şekilde değiştirmem gerekiyor. Benim Hayvanlar kodunu düzenledi bazı yanıtları sonra
Teşekkür
bu olması:
public class Animals extends Image {
public Circle selector;
public Animals(){
new Image(225,200,150,200);
setImage("AngryBirds.png");
selector = new Circle(70,70,this.getX(),this.getY());
selector.setThickness(5);
this.add(selector,0);
}
public void recenter(){
this.setLocation((600-this.getWidth()/2),(600-this.getHeight()/2));
}
}
Yeni Hayvanlar sınıfınız hala Görüntüyü genişletiyor. Bu Image sınıfı hakkında hiç bir şeyden bahsetmediniz - bu sizin sınıfınız mı? Java.awt.Image var mı? –
'win.setLayout (null);' 1) Java GUI'leri farklı işletim sistemlerinde, ekran boyutlarında, ekran çözünürlüğünde vb. Farklı lokallerde farklı PLAF'ler kullanarak çalışmalıdır. Bu nedenle, piksel mükemmel düzenine elverişli değildir. Bunun yerine düzen yöneticileri veya [bunların kombinasyonları] (http://stackoverflow.com/a/5630271/418556), [beyaz alan] için düzen dolguları ve kenarlıkları ile birlikte kullanın (http://stackoverflow.com/a/17874718/ 418.556). 2) Daha iyi yardım için, daha önce bir [MCVE] veya [Kısa, Kendini İçeren, Doğru Örnek] (http://www.sscce.org/) gönderin. –
Kargaşa için özür dilerim, Resim profesörün bize verdiği bir derstir. Kendi başıma problemlerim varmış gibi görünmüştüm ama @HovercraftFullOfEels senin fikrini bana verdiğin fikirler.Teşekkürler. –