[ nebohodac @ 02.02.2011. 21:22 ] @
Dobar dan =)

tek sam poceo programirat u javi i krenuo sam napraviti obicnu slagalicu brojeva. problem naravno nastane kada pokrenem slagalicu! imam sva polja i sve brojeve na njemu, ali polja jednostavno ne zele da se pokrenu. da li iko od vas ima prijedlog kako da rijesim problem? evo dole koda, svaki komentar je pozeljan. hvala u naprijed =)


Code:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class fifteenGame extends JFrame
{
   
    private JFrame frame;
    String[] buttonNr = {"15","14","13","12","11","10","9","8","7","6","5","4","3","2","1",""};
   
    public fifteenGame()
    {
        makeFrame();
    }
   
    public void makeFrame(){
        frame = new JFrame();
        //this.setContentPane(frame);
        frame.setLayout(new GridLayout(4,4,3,3));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.pack();
        fillButtons();
        frame.setBounds(100,100,300,200);
    }
   
    public static void main(String[] args){
       
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new fifteenGame();
            }
        });
    }
   
    public void fillButtons()
    {
        for(int i = 0; i < buttonNr.length;i++){
            Cell button = new Cell(""+ buttonNr[i]);
            frame.add(button,""+buttonNr[i]);
        }
           }


           public void keyPress(ActionEvent e){
        JButton b=(JButton)e.getSource();
        Component[] c = frame.getComponents();
        int labelPosition = getLabelNumber();
        int buttonPosition = getButtonNumber(b);
       

        if(buttonPosition+5 == labelPosition ||buttonPosition-5 == labelPosition || buttonPosition+1 == labelPosition || buttonPosition-1 == labelPosition){
            Component temp = frame.getComponent(labelPosition);
            frame.add(b,labelPosition);
            frame.add(temp,buttonPosition);
            this.validate();
           
        }
    }
   
    private int getButtonNumber(JButton button){
        Component[] c = frame.getComponents();
        for(int i=0;i<c.length;i++){
           
            if(c[i] instanceof Cell ){
                                if((Cell)c[i]==button){
                    return i;
                }
            }
        }
        return -1;
    }
   
    private int getLabelNumber(){
        Component[] c = frame.getComponents();
        for(int i=0;i<c.length;i++){
            if(c[i] instanceof JLabel){
                return i;
            }
        }
        return -1;
    }
   
    class Cell extends JButton implements ActionListener{   
       
   
       
        Cell(String name){
            this.setText(name);
            this.addActionListener(this);
           
        }
       
        public void actionPerformed(ActionEvent e) {
            keyPress(e);
        }
             
       
            }
        }

[ DavorPro @ 03.02.2011. 16:47 ] @
>

--001485f90d609a3828049b63843a
Content-Type: text/html; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable

Drugar ako �eli� ja ti po�aljem gotovu slagalicu pa da usporedi� i da vidi� kako se to radi �kolski.<br>Ako �eli� samo po�alji e-mail na <a href="mailto:[email protected]">[email protected]</a><br><br>Slagalica, memori, adresar itd..... java, java aplet....<br>
<br>LP<br><br><br><div class="gmail_quote">On Wed, Feb 2, 2011 at 10:22 PM, nebohodac <span dir="ltr">&lt;<a href="mailto:[email protected]">[email protected]</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Dobar dan =)<br>
<br>
tek sam poceo programirat u javi i krenuo sam napraviti obicnu slagalicu brojeva. problem naravno nastane kada pokrenem slagalicu! imam sva polja i sve brojeve na njemu, ali polja jednostavno ne zele da se pokrenu. da li iko od vas ima prijedlog kako da rijesim problem? evo dole koda, svaki komentar je pozeljan. hvala u naprijed =) <br>

<br>
<br><font color="#888888">
<br>
--<br>
<a href="http://www.elitesecurity.org/p2802066" target="_blank">http://www.elitesecurity.org/p2802066</a><br>
<br>
Prijave/odjave: <a href="http://www.elitesecurity.org/liste" target="_blank">http://www.elitesecurity.org/liste</a><br>
<br>
Deaktivirajte rich-text formatiranje u svom mail klijentu ili webmailu kada odgovarate na poruku. Ne menjajte sledece dve linije ukoliko odgovarate putem emaila!<br>
esauth:421533:8f3cfd7d47f6c414daed26a2305d5396<br>