Hallo,
ich bin grad dabei n kleines Hangman zu programmieren. Hab alles fertig doch ich schaffe es einfach nicht, das Strichmännchen zu zeichnen. Die folgenden Codeschnipsel sind nur zum testen gedacht. Normalerweise wird das Level in Hangman gesetzt wenn etwas falsches eingegeben wurde.
Hier die Graphics - Klasse
und jetzt die restlichen Teile (MVC)
testPanel
und die GUI
z.I. die ArrayList in dem Panel simuliert sozusagen meine Liste falscher Wörter.
Alles lässt sich kompilieren und ausführen , das Level wird gesetzt, doch es wird nichts gezeichnet.
irgendwelche Ideen ?
greez A0D0S0
ich bin grad dabei n kleines Hangman zu programmieren. Hab alles fertig doch ich schaffe es einfach nicht, das Strichmännchen zu zeichnen. Die folgenden Codeschnipsel sind nur zum testen gedacht. Normalerweise wird das Level in Hangman gesetzt wenn etwas falsches eingegeben wurde.
Hier die Graphics - Klasse
Java:
public class HangmanGraphic extends JPanel
{
private int level = 0;
public HangmanGraphic(){
Dimension d = new Dimension(400,400);
setPreferredSize(d);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
if(getLevel() == 1){
g.drawLine(300,300,300,100);
}
if(getLevel() == 2){
g.drawLine(300,100,170,100);
}
if(getLevel() == 3){
g.drawLine(250,100,300,150);
}
if(getLevel() == 4){
g.drawLine(170,100,170,123);
}
if(getLevel() == 5){
g.drawOval(161,123,20,20);
}
if(getLevel() == 6){
g.drawLine(170,143,170,185);
}
if(getLevel() == 7){
g.drawLine(170,160,150,150);
}
if(getLevel() == 8){
g.drawLine(170,160,190,150);
}
if(getLevel() == 9){
g.drawLine(170,185,155,198);
}
if(getLevel() == 10){
g.drawLine(170,185,186,199);
}
}
public void setLevel(int level){
this.level = level;
}
public int getLevel(){
return level;
}
}
und jetzt die restlichen Teile (MVC)
testPanel
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
public class testPanel extends HangmanGraphic {
private Button test,addtest;
private Panel p1,p2;
//private HangmanGraphic hg = new HangmanGraphic();
private ArrayList <String> g = new ArrayList <String>();
public testPanel(){
test = new Button("Test");
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(test);
p2.add(addtest);
ActionHandler h = new ActionHandler();
test.addActionListener(h);
addtest.addActionListener(h);
}
private class ActionHandler implements ActionListener
{
public void actionPerformed(ActionEvent e){
if(e.getSource()==addtest){
g.add(0,"haha");
setLevel(g.size());
repaint();
}
}
}
}
und die GUI
Java:
public class testGUI extends JFrame
{
public static void main(String[]args){
new testGUI();
}
public testGUI(){
setSize(500,500);
setTitle("TEST");
setVisible(true);
Container c = getContentPane();
c.add(new testPanel());
}
}
z.I. die ArrayList in dem Panel simuliert sozusagen meine Liste falscher Wörter.
Alles lässt sich kompilieren und ausführen , das Level wird gesetzt, doch es wird nichts gezeichnet.
irgendwelche Ideen ?
greez A0D0S0