title: How can i use java class under swing JButton?
body: <p>how can i use java class under a swing jButton?this is the code i want to link with the button. this code will discover the bluetooth devices and will send a text file to the connected device.I have used bluecove library. </p>
  
  <pre><code>import java.io.OutputStream;
  import java.util.ArrayList;
  
  import javax.bluetooth.DataElement;
  import javax.bluetooth.DeviceClass;
  import javax.bluetooth.DiscoveryAgent;
  import javax.bluetooth.DiscoveryListener;
  import javax.bluetooth.LocalDevice;
  import javax.bluetooth.RemoteDevice;
  import javax.bluetooth.ServiceRecord;
  import javax.bluetooth.UUID;
  import javax.microedition.io.Connector;
  import javax.obex.ClientSession;
  import javax.obex.HeaderSet;
  import javax.obex.Operation;
  import javax.obex.ResponseCodes;
  
  
  public class MyDiscoveryListener implements DiscoveryListener{
  
  private static Object lock=new Object();
  public ArrayList&lt;RemoteDevice&gt; devices;
  
  public MyDiscoveryListener() {
      devices = new ArrayList&lt;RemoteDevice&gt;();
  }
  
  public static void main(String[] args) {
  
      MyDiscoveryListener listener =  new MyDiscoveryListener();
  
      try{
          LocalDevice localDevice = LocalDevice.getLocalDevice();
          DiscoveryAgent agent = localDevice.getDiscoveryAgent();
          agent.startInquiry(DiscoveryAgent.GIAC, listener);
  
          try {
              synchronized(lock){
                  lock.wait();
              }
          }
          catch (InterruptedException e) {
              e.printStackTrace();
              return;
          }
  
  
          System.out.println("Device Inquiry Completed. ");
  
  
          UUID[] uuidSet = new UUID[1];
          uuidSet[0]=new UUID(0x1105); //OBEX Object Push service
  
          int[] attrIDs =  new int[] {
                  0x0100 // Service name
          };
  
          for (RemoteDevice device : listener.devices) {
              agent.searchServices(
                      attrIDs,uuidSet,device,listener);
  
  
              try {
                  synchronized(lock){
                      lock.wait();
                  }
              }
              catch (InterruptedException e) {
                  e.printStackTrace();
                  return;
              }
  
  
              System.out.println("Service search finished.");
          }
  
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
  
  
  
  @Override
  public void deviceDiscovered(RemoteDevice btDevice, DeviceClass arg1) {
      String name;
      try {
          name = btDevice.getFriendlyName(false);
      } catch (Exception e) {
          name = btDevice.getBluetoothAddress();
      }
  
      devices.add(btDevice);
      System.out.println("device found: " + name);
  
  }
  
  @Override
  public void inquiryCompleted(int arg0) {
      synchronized(lock){
          lock.notify();
      }
  }
  
  @Override
  public void serviceSearchCompleted(int arg0, int arg1) {
      synchronized (lock) {
          lock.notify();
      }
  }
  
  @Override
  public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
      for (int i = 0; i &lt; servRecord.length; i++) {
          String url = servRecord[i].getConnectionURL(ServiceRecord.AUTHENTICATE_NOENCRYPT, true);
          if (url == null) {
              continue;
          }
          DataElement serviceName = servRecord[i].getAttributeValue(0x0100);
          if (serviceName != null) {
              System.out.println("service " + serviceName.getValue() + " found " + url);
              sendMessageToDevice(url);
              if(serviceName.getValue().equals("OBEX Object Push")){
                  sendMessageToDevice(url);                
              }
          } else {
              System.out.println("service found " + url);
          }
  
  
      }
  }
  
  private static void sendMessageToDevice(String serverURL){
      try{
          System.out.println("Connecting to " + serverURL);
  
          ClientSession clientSession = (ClientSession) Connector.open(serverURL);
          System.out.println(clientSession.toString());
          HeaderSet hsConnectReply = clientSession.connect(null);
          System.out.println("Reply: " + hsConnectReply.toString());
          if (hsConnectReply.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {
              System.out.println("Failed to connect");
              return;
          }
  
          HeaderSet hsOperation = clientSession.createHeaderSet();
          hsOperation.setHeader(HeaderSet.NAME, "do u want to encrypt/decrypt");
          hsOperation.setHeader(HeaderSet.TYPE, "text");
  
          System.out.println("Operation: " + hsOperation.toString());
          //Create PUT Operation
          Operation putOperation = clientSession.put(hsOperation);
          System.out.println("Putt  Operation: " + putOperation.toString());
          // Send some text to server
          byte data[] = "Hello World !!!".getBytes("iso-8859-1");
          hsOperation.setHeader(hsOperation.LENGTH, new Long(data.length));
          OutputStream os = putOperation.openOutputStream();
          System.out.println("Writing the data: " + data[0]);
          os.write(data);
          os.close();
  
          putOperation.close();
  
          clientSession.disconnect(null);
  
          clientSession.close();
      }
      catch (Exception e) {
          e.printStackTrace();
      }
  }
  
  }
  </code></pre>