Dynamic Binding in Java to change image icon

//d1.java


import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.lang.*;

public class d1 implements ActionListener
{
JButton jb;
JFrame jf;
JTextField jtf;
d1()
{
//frame should always be called first
frame();
button();
textfield();
jf.setVisible(true);

d2 a=new d2(jb);

}

public void button()
{
jb=new JButton();
jf.add(jb,BorderLayout.NORTH);
jb.addActionListener(this);
}
public void textfield()
{
jtf=new JTextField();
jf.add(jtf,BorderLayout.CENTER);
}

public void frame()
{
jf=new JFrame("p2 frame");
jf.setSize(500,500);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
//v. imp line otherwise the swing will not close
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals(jb.getText()))
{

}
}

public static void main(String args[])throws IOException
{
SwingUtilities.invokeLater(
new Runnable()
{
public void run()
{
d1 a=new d1();
}
}
        );



}

}



//d2.java



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

public class d2 implements Runnable
{
Thread t;
JButton jb;
int i=1;
d2(JButton jb)
{
this.jb=jb;
t=new Thread(this);
t.start();
}
public void run()
{

while(true)
{
try
{
jb.setIcon(new ImageIcon(i+".jpg"));
Thread.sleep(1000);
i++;
if(i==3)
i=1;

}

catch(Exception e)
{

}


}


}



}




Post a Comment