Я пишу графическое приложение, используя SWT. Сначала я создал оболочку с фоновым изображением (shell.setBackgroundImage (image)), затем я поместил композит с другим фоновым изображением, чтобы я мог использовать его (композитный) для размещения меток внутри него. Проблема в том, что я не могу избавиться от серой границы вокруг композита. Возможно ли это сделать вообще или, возможно, есть другие способы сделать это?
Вот код:
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class Test {
protected static int gap = 20;
public static void main (String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
Image bg_Image = new Image(display, "bg_full.png");
shell.setBackgroundImage(bg_Image);
shell.setBackgroundMode(SWT.INHERIT_FORCE);
shell.setFullScreen(true);
Image bg = new Image(display, "bg.png");
Image border = new Image(display, "bg_info.png");
Image b1 = new Image(display, "button_total_active.png");
Image b2 = new Image(display, "button_terminal.png");
Image b3 = new Image(display, "button_operator.png");
Image b4 = new Image(display, "button_contract.png");
Composite composite = new Composite(shell, SWT.NONE);
composite.setBackgroundImage(bg);
composite.setBackgroundMode(SWT.INHERIT_FORCE);
composite.setBounds(80, 220, bg.getBounds().width, bg.getBounds().height);
Label label1 = new Label(composite, SWT.NONE);
label1.setImage(b1);
label1.setBounds(gap, gap, b1.getBounds().width, b1.getBounds().height);
Label label2 = new Label(composite, SWT.NONE);
label2.setImage(b2);
label2.setBounds(gap, gap*2+b1.getBounds().height, b2.getBounds().width, b2.getBounds().height);
Label label3 = new Label(composite, SWT.NONE);
label3.setImage(b3);
label3.setBounds(gap, gap*3+b1.getBounds().height*2, b3.getBounds().width, b3.getBounds().height);
Label label4 = new Label(composite, SWT.NONE);
label4.setImage(b4);
label4.setBounds(gap, gap*4+b1.getBounds().height*3, b4.getBounds().width, b4.getBounds().height);
Label label5 = new Label(composite, SWT.NONE);
label5.setImage(border);
label5.setBounds(gap*2+b1.getBounds().width, gap, border.getBounds().width, border.getBounds().height);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
Вот пример изображения