D
Darkmaster
Gast
Hallo Leute,
ich hab vor Vier Gewinnt in Java zu programmieren und hab deswegen Canvas hergenommen. Hat bis jetzt auch alles gut geklappt mit dem zeichnen, nur habe ich keine Buttons integriert, und die brauch ich unbedingt, damit ich einen Stein in eine Spalte fallen lassen kann. Mein Problem ist jetzt, dass ich es nicht schaffe einen Button in dem Canvas zu erstellen.
Ich poste Mal meine bisherigen Erkenntnisse:
Es soll also wie hier zu sehen, ein Spiefeld mit der Grösse 6 auf 7 erstellt werden und außen rum Kästchen die als Mauer dienen(Nur oben nicht, denn da kommen die Steine ja rein.) Und jetzt hoff ich dass jemand mir den Code so ändert, dass da zumindest ein Button auftaucht.
MFG
Markus
ich hab vor Vier Gewinnt in Java zu programmieren und hab deswegen Canvas hergenommen. Hat bis jetzt auch alles gut geklappt mit dem zeichnen, nur habe ich keine Buttons integriert, und die brauch ich unbedingt, damit ich einen Stein in eine Spalte fallen lassen kann. Mein Problem ist jetzt, dass ich es nicht schaffe einen Button in dem Canvas zu erstellen.
Ich poste Mal meine bisherigen Erkenntnisse:
Code:
package gewinnt;
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.util.*;
class save
{
static char spielfeld[][];
}
public class Test extends Canvas{
static int GROESSE=30;
static int LAENGE=9;
static int HOEHE=7;
public static final int WIDTH = GROESSE*LAENGE+100;
public static final int HEIGHT = WIDTH;
Image bildns,bildg,bildmc;
public HashMap sprites;
public BufferedImage buffer;
public Test() {
sprites = new HashMap();
buffer = new BufferedImage(WIDTH,HEIGHT, BufferedImage.TYPE_INT_RGB);
JFrame ventana = new JFrame("HaloZero");
JPanel panel = (JPanel)ventana.getContentPane();
setBounds(0,0,WIDTH,HEIGHT);
panel.setPreferredSize(new Dimension(WIDTH,HEIGHT));
panel.setLayout(null);
panel.add(this);
ventana.setBounds(0,0,WIDTH,HEIGHT);
ventana.setVisible(true);
ventana.addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
ventana.setIgnoreRepaint(true);
ventana.setResizable(false);
bildns = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/nicht_sand.gif");
bildg = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/gegner.gif");
bildmc = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/MasterChief.gif");
}
public void createspielfeld()
{
int i=6+1; //Weil unten eine Mauer ist
int j=7+2; //Weil links und rechts Mauern sind.
save.spielfeld = new char[i][j];
for (j=0, i=0; i <HOEHE; i++) //LINKE MAUER
save.spielfeld[i][j]='#';
for (j=0; j < LAENGE-1; j++)
for(i=0; i < HOEHE; i++)
{
if (i==HOEHE-1) //UNTERE MAUER
save.spielfeld[i][j]='#';
}
for (j=LAENGE-1, i=0; i < HOEHE; i++)//RECHTE MAUER
save.spielfeld[i][j]='#';
}
public void showspielfeld()//SPIELSTAND AKTUALISIEREN
{
Graphics g = buffer.getGraphics();
getGraphics().drawImage(buffer,0,0,this);
for (int j=0; j < LAENGE; j++)
for (int i=0; i < HOEHE; i++)
{
// System.out.println(save.spielfeld[i][j]);
if(save.spielfeld[i][j]=='#')
g.drawImage(bildns, j*GROESSE+100, i*GROESSE+100, this);
else if(save.spielfeld[i][j]=='1')
g.drawImage(bildmc, j*GROESSE+100, i*GROESSE+100, this);
else if(save.spielfeld[i][j]=='2')
g.drawImage(bildg, j*GROESSE+100, i*GROESSE+100, this);
}
}
public void game()
{
createspielfeld();
while (isVisible())
{
showspielfeld();
}
}
public static void main(String[] args)
{
Test inv = new Test();
inv.game();
}
}
MFG
Markus