2013-06-29 4 views
3

Я использую SWT Canvas для моего проекта. Моя проблема в том, что я не могу установить цвет фона для него. Вот мой код. Независимо от того, какой цвет я даю для фона, я получаю только светло-серый цвет фона по умолчанию при запуске моего плагина. Может кто-нибудь, пожалуйста, помогите мне с этим?Java SWT - Настройка цвета фона холста

Спасибо!

@Override 
public void createPartControl(Composite parent) { 

    scParent = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); 
    scParent.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
    scParent.setExpandHorizontal(true); 
    scParent.setExpandVertical(true); 

    // Create Canvas to hold the table 
    tableCanvas = new Canvas(scParent, SWT.H_SCROLL | SWT.V_SCROLL); 
     tableCanvas.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); 
    gd.heightHint = 116; 
    gd.horizontalSpan = 3; 
    tableCanvas.setLayoutData(gd); 

ответ

1

Вот обходной путь я сделал для прокручивается композит работать правильно. Раньше механизм прокрутки тоже не работал + я не мог установить фон. Вот обновленный код:

@Override 
public void createPartControl(Composite parent) { 
    parent.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
    parent.setLayout(new FillLayout(SWT.HORIZONTAL)); 

    ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); 
    scrolledComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
    scrolledComposite.setExpandHorizontal(true); 
    scrolledComposite.setExpandVertical(true); 
    scrolledComposite.setMinWidth(400); 
    scrolledComposite.setMinHeight(400); 

    Composite myViewParent = new Composite(scrolledComposite, SWT.NONE); 
    myViewParent.setBackground(SWTResourceManager.getColor(SWT.COLOR_CYAN)); 
    myViewParent.setLayout(null); 

    Button btnNewButton = new Button(myViewParent, SWT.NONE); 
    btnNewButton.setBounds(45, 237, 90, 30); 
    btnNewButton.setText("New Button"); 

    scrolledComposite.setContent(myViewParent); 
    scrolledComposite.setMinSize(myViewParent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); 
    parent.setSize(600, 300); 
0

Как это, например, чтобы установить цвет фона как синий.

tableCanvas.setBackground(tableCanvas.getDisplay().getSystemColor(SWT.COLOR_BLUE)); 

эта статья будет очень поучительно для вас

http://eclipse.org/articles/Article-SWT-graphics/SWT_graphics.html#Canvas

+0

Спасибо за ответ. Учебник был очень полезен. К сожалению, для меня это не получилось. Я сделал работу, которая, наконец, хорошо работала. Я отправлю его в качестве ответа. – user2033666