Avatar billede thojo Nybegynder
21. november 2003 - 02:13 Der er 1 løsning

hent koordinater

Jeg er ved at udvikle et sæneslagskibe spil med 10x10 felter.. Jeg har et array liggende som indeholder placerede skibe, men skal lave det sådan så når brugeren trykker på knap i felt 1,1 så skal den give knappens koordinater.. det er i metoden checkRamt jeg gerne vil have overførs koordinaterne dynamisk i stedet for det statiske punkt jeg har defineret nu..
her er en del af min kode..:

class VandFelt extends JFrame
{
    private JButton vandFelt = new JButton();
    private JButton skibFelt = new JButton();
    JButton[][] fieldContainer = new JButton[10][10];
    JButton[][] skibsContainer = new JButton[10][10];
    int xcor=0, ycor=0;
   
    public VandFelt()
    {
       
        try
        {
            jbInit();
        }
        catch(Exception u)
        {
            u.printStackTrace();
        }
    }
   
    private void jbInit() throws Exception
    {
        getContentPane().setLayout(null);
       
          for(int i = 0; i < 10; i++)
          {
              xcor+=15;
              ycor=10;
             
            for(int e = 0; e < 10; e++)
            {
                ycor+=15;
                  vandFelt = new JButton();
                  vandFelt.setBounds(new Rectangle(xcor, ycor, 15, 15));
                vandFelt.setBackground(new Color(255, 255, 255));
                vandFelt.setBorder(BorderFactory.createLineBorder(Color.black, 1));
                vandFelt.setEnabled(false);
                vandFelt.addMouseListener(new java.awt.event.MouseAdapter()
                  {
                    public void mousePressed(MouseEvent e)
                    {
                      click(e);
                    }
                  });
               
               
                fieldContainer[i][e] = vandFelt;
                getContentPane().add(fieldContainer[i][e], null);
            }
        }

.... -> ....

    private void click(MouseEvent e)
    {
       
        vandFelt = (JButton)e.getSource();
        System.out.println(e.getSource());
        if(checkRamt(1,1))
        vandFelt.setBackground(new Color(255, 0, 0));
        else
        vandFelt.setBackground(new Color(0, 0, 255));
    }
   
    private boolean checkRamt(int a, int b)
    {       
        if(vandFelt.equals(fieldContainer[a][b]))
        return true;
        return false;
       
    }
Avatar billede thojo Nybegynder
21. november 2003 - 02:31 #1
lukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester