在做eclipse 的乙個專案時遇到org.eclipse.swt.widgets.button設定背景色,不起作用。
遇到問題後在網上找了好久,終於找到一段修正**,不可直接使用,於是將其更改為如下方法。
本想重寫swt的button類,結果任務在身,遇到問題就放棄了,有能力的可以試試。
或許該方法還可以繼續優化,大家繼續啊。
使用方法:正常使用swt button,只是在設定背景設以後,記得呼叫下面的方法,即可,測試通過。
* just to fix button's backgroundcolor,may be it is on test.
* @param button
private void fixsetbackground(button button) {
color foreground = button.getforeground();
color background = button.getbackground();
int x = 0;
int y = 0;
rectangle rect = button.getbounds();
int width = rect.width;
int height = rect.height;
string text = button.gettext();
if (width == 0)
width = 1;
if (height == 0)
height = 1;
button.setimage(new image(button.getparent().getdisplay(), width,height));
image original = button.getimage();
gc gc = new gc(original);
gc.setforeground(foreground);
gc.setbackground(background);
gc.drawrectangle(x, y, width, height);
gc.fillrectangle(x, y, width, height);
font font = button.getfont();
fontdata fontdata = font.getfontdata()[0];
int fontsize = fontdata.getheight();
gc.setfont(button.getfont());
int ximg = (x + width) / 2 - fontsize * text.length() / 3;
int yimg = (y + height) / 2 - fontsize * 3 / 4;
gc.drawtext(text, ximg < 4 ? ximg : 4, yimg < 4 ? yimg : 4,
swt.draw_transparent | swt.draw_mnemonic);
gc.dispose();
原文:https://bugs.eclipse.org/bugs/show_bug.cgi?id=23837
css背景設定
顏色表示方法 background 1 red 英文單詞 2 ff0000 16進製制 3 rgb 255,0,0 3元色 4 rgb 100 0 0 百分比 背景起始位置 background origin padding box border box content box 邊框起始 內邊距起始...
css背景設定
1 background color 背景顏色 2 background image 背景 3 background repeat 背景重複 4 background position 背景位置 5 background size 背景尺寸 6 background attachment 背景粘附 ...
css背景設定
注 所有的 都在中實現 背景色 background color 顏色 背景 背景大小 background size 平鋪 重複 background repeat no repeat 此行表示不平鋪 背景位置 background position 傳值 x y xy可正可負 傳關鍵字 x ce...