Я пытаюсь поместить кнопки с изображениями (GIF) на фон, который уже был установлен как изображение (shell.setBackgroundImage(image)
), и я не могу понять, как убрать прозрачную рамку вокруг кнопок с изображениями.Я был бы признателен, если бы кто-нибудь дал мне несколько советов по этому вопросу.
Вот мой код:
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();
}
}
Sorceror, спасибо за ваш ответ, я обязательно изучу эта статья .Может быть, я найду свой путь.Пока что я немного улучшил свой код.Во-первых, мне удалось избавиться от серого фонового шума.Во-вторых, мне наконец-то удалось создать кнопку, как я ее видел в первую очередь.Тем не менее, еще одно препятствие возникло.Когда я убрал изображение (кнопку) с прозрачной границы, оказалось, что кнопка меняет свой режим (с кнопки на флажок).Проблема в том, что я так близко подошел к тому, что искал, и теперь я немного озадачен.Если у вас есть время, пожалуйста, взгляните на мой код.
Вот код, если вы запустите его, вы увидите, в чем проблема (надеюсь, у вас не было проблем с загрузкой изображений):
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();
}