Как нарисовать изображение SWT? - PullRequest
7 голосов
/ 31 мая 2011

Я пытаюсь нарисовать изображение SWT, но ничего не появляется:

Display display = new Display();
Shell shell = new Shell(display);
shell.open();

Image image = new Image(display, "C:/sample_image.png");
Rectangle bounds = image.getBounds();

GC gc = new GC(image);
gc.drawImage(image, 100, 100);
// gc.drawLine(0, 0, bounds.width, bounds.height);
// gc.drawLine(0, bounds.height, bounds.width, 0);
// gc.dispose();
// image.dispose();

while (!shell.isDisposed()) {
  if (!display.readAndDispatch())
    display.sleep();
}
display.dispose();

Я проверил, что изображение существует и имеет контент - есть идеи?

Ответы [ 2 ]

8 голосов
/ 31 мая 2011

Создайте ярлык и установите на нем изображение.

Image myImage = new Image( display, "C:/sample_image.png" );
Label myLabel = new Label( shell, SWT.NONE );
myLabel.setImage( myImage );

Этого вам может быть достаточно.

4 голосов
/ 31 мая 2011

Обычно для рисования изображения используют холст.

// Create a canvas
Canvas canvas = new Canvas(shell, SWT.NONE);
final Image image = new Image(display, "C:/sample_image.png");

// Create a paint handler for the canvas    
canvas.addPaintListener(new PaintListener() {
  public void paintControl(PaintEvent e) {
    e.gc.drawImage(image, 0, 0);        
  }
});

См. эту ссылку для получения дополнительной информации об изображениях SWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...