title: Placing image buttons on the image background
body: <p>I am trying to put buttons with images (GIF) on the background which has already been set as an image (<code>shell.setBackgroundImage(image)</code>) and I can't figure out how to remove transparent border around buttons with images. I would be grateful if somebody could give me some tip about this issue.</p>
  
  <p>Here is my code:</p>
  
  
  
  <pre class="lang-java prettyprint-override"><code>import org.eclipse.swt.widgets.*;
  import org.eclipse.swt.layout.*;
  import org.eclipse.swt.*;
  import org.eclipse.swt.graphics.*;
  
  public class Main_page {
          public static void main(String[] args) {
                  Display display = new Display();
                  Shell shell = new Shell(display);
                  Image image = new Image(display, "bg.gif");
                  shell.setBackgroundImage(image);
                  shell.setBackgroundMode(SWT.INHERIT_DEFAULT);
                  shell.setFullScreen(true);
  
                  Button button = new Button(shell, SWT.PUSH);
                  button.setImage(new Image(display, "button.gif"));
  
                  RowLayout Layout = new RowLayout();
                  shell.setLayout(Layout);
  
                  shell.open();
                  while (!shell.isDisposed()) {
                          if (!display.readAndDispatch())
                              display.sleep();      
                  }
                  display.dispose();
          }
  }
  </code></pre>
  
  <hr>
  
  <p>Sorceror, thanks for your answer I will definitely look into <a href="http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html#Transparency" rel="nofollow noreferrer">this article</a>. Maybe I will find my way. So far I have improved my code a little bit. Firstly, I managed to get rid of the gray background noise. Secondly, I finally succeeded in creating the button as I had seen it in the first place. Yet, another obstacle has arisen. When I removed image(button) transparent border it turned out that the button change its mode(from push button to check box). The problem is that I came so close to the thing I was looking for and now I am a little puzzled. If you have some time please give a glance at my code.</p>
  
  <p>Here is the code, if you launch it you will see what the problem is(hope you didn't have problems downloading images):</p>
  
  <pre class="lang-java prettyprint-override"><code>import org.eclipse.swt.widgets.*;
  import org.eclipse.swt.layout.*;
  import org.eclipse.swt.*;
  import org.eclipse.swt.graphics.*;
  
  public class Main_page {
          public static void main(String[] args) {
                  Display display = new Display();
                  Shell shell = new Shell(display);
                  Image image = new Image(display, "bg.gif"); // Launch on a screen 1280x1024
                  shell.setBackgroundImage(image);
                  shell.setBackgroundMode(SWT.TRANSPARENT);
                  shell.setFullScreen(true);
  
  
                  GridLayout gridLayout = new GridLayout();
                  gridLayout.marginTop = 200; 
                  gridLayout.marginLeft = 20;
                  shell.setLayout(gridLayout);
  
  
  
                  // If you replace SWT.PUSH with SWT.COLOR_TITLE_INACTIVE_BACKGROUND
                  // you will see what I am looking for, despite nasty check box  
  
                  Button button = new Button(shell, SWT.PUSH); 
                  button.setImage(new Image(display, "moneyfast.gif"));
  
  
  
                  shell.open();
                  while (!shell.isDisposed()) {
                          if (!display.readAndDispatch())
                              display.sleep();      
                  }
                  display.dispose();
          }
  </code></pre>