Hallo,
bin gerade dabei mir n kleines Hangman Spiel zu schreiben.
Hangman steht soweit , jetzt bin ich bei der Grafikklasse, nur die will nicht so ganz wie ich will
DAS ist die Graphics Klasse zum zeichnen:
in nem Panel wird bei jedme Buttondruck (nur zum Test) oder wie beim Hangman wenn ein falsches Wort eingegeben wurde ein Strich gezeichnet.
Nun habe ich festgestellt , dass wenn ich da Level neu setzte er nicht überprüft, wie hoch es ist und dementsprechend zeichnet ( er geht nicht in die paint Methode ren) (deshalb die Printlns bei der Abfrage )
Hier mein Panel:
Die GUI Klasse :
Repaint und sonstige Methoden schon alle ausprobiert.
Vielleicht kommt einer von euch drauf, wo das Problem liegt.
Vielen Dank schon im Voraus ,
Greez A0D0S0
bin gerade dabei mir n kleines Hangman Spiel zu schreiben.
Hangman steht soweit , jetzt bin ich bei der Grafikklasse, nur die will nicht so ganz wie ich will
DAS ist die Graphics Klasse zum zeichnen:
Java:
import java.awt.*;
import java.awt.Graphics;
import javax.swing.*;
/**
* Beschreiben Sie hier die Klasse HangmanGraphic.
*
* @version 2011-09-23
*/
public class HangmanGraphic extends JPanel
{
private int level = 0;
public HangmanGraphic(){
Dimension d = new Dimension(400,400);
setPreferredSize(d);
}
public void paint(Graphics g){
if(getLevel() == 1){
g.drawLine(300,300,300,100);
repaint();
System.out.println(level);
}
if(getLevel() == 2){
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
System.out.println(level);
}
if(getLevel() == 3){
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 4){
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 5){
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 6){
g.drawLine(170,143,170,185);
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 7){
g.drawLine(170,160,150,150);
g.drawLine(170,143,170,185);
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 8){
g.drawLine(170,160,190,150);
g.drawLine(170,160,150,150);
g.drawLine(170,143,170,185);
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 9){
g.drawLine(170,185,155,198);
g.drawLine(170,160,190,150);
g.drawLine(170,160,150,150);
g.drawLine(170,143,170,185);
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
if(getLevel() == 10){
g.drawLine(170,185,186,199);
g.drawLine(170,185,155,198);
g.drawLine(170,160,190,150);
g.drawLine(170,160,150,150);
g.drawLine(170,143,170,185);
g.drawOval(161,123,20,20);
g.drawLine(170,100,170,123);
g.drawLine(250,100,300,150);
g.drawLine(300,100,170,100);
g.drawLine(300,300,300,100);
repaint();
}
}
public void setLevel(int level){
this.level = level;
}
public int getLevel(){
return level;
}
}
in nem Panel wird bei jedme Buttondruck (nur zum Test) oder wie beim Hangman wenn ein falsches Wort eingegeben wurde ein Strich gezeichnet.
Nun habe ich festgestellt , dass wenn ich da Level neu setzte er nicht überprüft, wie hoch es ist und dementsprechend zeichnet ( er geht nicht in die paint Methode ren) (deshalb die Printlns bei der Abfrage )
Hier mein Panel:
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
public class testPanel extends JPanel{
private Button addtest;
private HangmanGraphic h = new HangmanGraphic();
private Panel p1,p2;
public testPanel(){
addtest = new Button("Listadd");
p1 = new Panel();
p2 = new Panel();
this.setLayout(new BorderLayout());
this.add(p1,BorderLayout.CENTER);
this.add(p2,BorderLayout.EAST);
p1.add(new HangmanGraphic());
p2.add(addtest);
ActionHandler h = new ActionHandler();
addtest.addActionListener(h);
}
private class ActionHandler implements ActionListener
{
public void actionPerformed(ActionEvent e){
if(e.getSource()==addtest){
h.setLevel(h.getLevel()+1);
repaint();
}
}
}
}
Die GUI Klasse :
Java:
import java.awt.*;
import javax.swing.*;
/**
* GUI - Applikation des Hangman Spiels
*
* @version 2011-09-23
*/
public class testGUI extends JFrame
{
public static void main(String[]args){
new testGUI();
}
public testGUI(){
setSize(500,500);
setTitle("Hangman");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.add(new testPanel());
}
}
Repaint und sonstige Methoden schon alle ausprobiert.
Vielleicht kommt einer von euch drauf, wo das Problem liegt.
Vielen Dank schon im Voraus ,
Greez A0D0S0