Hi folks
Ich habe folgendes Problem. Ich bin möchte gerne (um ein bissel besser Java zu verstehen und zu lernen)
ein Damespiel programmieren. Dabei stecke ich nun in den Startlöchern und hatte folgende Idee. Ich will
gerne ein "Hintergrundbild" laden (Also das Schachbrett). Danach sollen alle anderen Damefiguren darüber
gezeichnent werden. Sowohl das Schachbrett als auch die Figuren liegen dabei als GIF Dateien vor.
Bisher habe ich folgenden Quelltext zustandegebracht. Hierbei ergibt sich jedoch das Problem das nur die
Spielfigur zu sehen ist und nicht das "darunterliegende" Schachbrett. Hoffe ihr könnt mir helfen, da ich ein
totaler Java noob bin und gerade meine ersten Lernschritte wage
Ich habe folgendes Problem. Ich bin möchte gerne (um ein bissel besser Java zu verstehen und zu lernen)
ein Damespiel programmieren. Dabei stecke ich nun in den Startlöchern und hatte folgende Idee. Ich will
gerne ein "Hintergrundbild" laden (Also das Schachbrett). Danach sollen alle anderen Damefiguren darüber
gezeichnent werden. Sowohl das Schachbrett als auch die Figuren liegen dabei als GIF Dateien vor.
Bisher habe ich folgenden Quelltext zustandegebracht. Hierbei ergibt sich jedoch das Problem das nur die
Spielfigur zu sehen ist und nicht das "darunterliegende" Schachbrett. Hoffe ihr könnt mir helfen, da ich ein
totaler Java noob bin und gerade meine ersten Lernschritte wage
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ch2kpower extends JFrame implements ActionListener{
JButton a;
CBildLeinwand m_bildanzeige;
Image m_aktBild;
int m_bildBreite, m_bildHoehe;
int m_bild_x1, m_bild_x2, m_bild_y1, m_bild_y2;
int m_Xpos = 4, m_Ypos = 4;
public ch2kpower(){
JPanel unten = new JPanel();
unten.setLayout(new FlowLayout());
a = new JButton("Exit");
unten.add(a);
getContentPane().add(unten, BorderLayout.SOUTH);
m_bildanzeige = new CBildLeinwand();
getContentPane().add(m_bildanzeige);
bildladen("sb.gif", 4, 4);
bildladen("f_w.gif", 50, 50);
}
public void bildladen(String z, int x, int y)
{
m_Xpos = x;
m_Ypos = y;
Toolkit toolkit = Toolkit.getDefaultToolkit();
MediaTracker ladekontrolle = new MediaTracker(this);
m_aktBild = toolkit.getImage(z);
ladekontrolle.addImage(m_aktBild,0);
try
{
ladekontrolle.waitForID(0);
}catch(InterruptedException e)
{
m_aktBild = null;
return;
}
// Begrenzungskoordinaten des Bildes ermitteln
m_bildBreite = m_aktBild.getWidth(m_bildanzeige);
m_bildHoehe = m_aktBild.getHeight(m_bildanzeige);
m_bild_x1 = m_Xpos;
m_bild_y1 = m_Ypos;
m_bild_x2 = m_bild_x1 + m_bildBreite;
m_bild_y2 = m_bild_y1 + m_bildHoehe;
m_bildanzeige.repaint();
}
class CBildLeinwand extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(m_aktBild != null)
g.drawImage(m_aktBild,m_Xpos,m_Ypos,this);
}
public Dimension getMinimumSize()
{
return new Dimension(500,485);
}
public Dimension getPreferredSize()
{
return getMinimumSize();
}
}
public void actionPerformed(ActionEvent ex){
}
public static void main(String[] args) {
ch2kpower pe = new ch2kpower();
pe.setDefaultCloseOperation(EXIT_ON_CLOSE);
pe.setTitle("-Dame 2K-");
pe.setResizable(false);
pe.pack();
pe.show();
}
}