- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
Java GUI (AWT,SWING,SWT,JFACE) [SWT, Java], Button by Image, 이미지로 버튼 생성
2015.08.22 21:53
[SWT, Java], Button by Image, 이미지로 버튼 생성
public class ImageButton extends Composite { private Color textColor; private Image image; private String text; private int width; private int height; public ImageButton(Composite parent, int style) { super(parent, style); textColor = Display.getDefault().getSystemColor(SWT.COLOR_WHITE); /* Add dispose listener for the image */ addListener(SWT.Dispose, new Listener() { @Override public void handleEvent(Event arg0) { if (image != null) image.dispose(); } }); /* Add custom paint listener that paints the stars */ addListener(SWT.Paint, new Listener() { @Override public void handleEvent(Event e) { paintControl(e); } }); /* Listen for click events */ addListener(SWT.MouseDown, new Listener() { @Override public void handleEvent(Event arg0) { System.out.println("Click"); } }); } private void paintControl(Event event) { GC gc = event.gc; if (image != null) { gc.drawImage(image, 1, 1); Point textSize = gc.textExtent(text); gc.setForeground(textColor); gc.drawText(text, (width - textSize.x) / 2 + 1, (height - textSize.y) / 2 + 1, true); } } public void setImage(Image image) { this.image = new Image(Display.getDefault(), image, SWT.IMAGE_COPY); width = image.getBounds().width; height = image.getBounds().height; redraw(); } public void setText(String text) { this.text = text; redraw(); } @Override public Point computeSize(int wHint, int hHint, boolean changed) { int overallWidth = width; int overallHeight = height; /* Consider hints */ if (wHint != SWT.DEFAULT && wHint < overallWidth) overallWidth = wHint; if (hHint != SWT.DEFAULT && hHint < overallHeight) overallHeight = hHint; /* Return computed dimensions plus border */ return new Point(overallWidth + 2, overallHeight + 2); } public static void main(String[] args) { Display display = Display.getDefault(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); ImageButton button = new ImageButton(shell, SWT.NONE); button.setImage(new Image(display, "button.png")); button.setText("Button"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
[출처] http://stackoverflow.com/questions/23729981/adding-background-image-to-button-in-swt
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.