English 中文(简体)
SWT 解雇问题
原标题:SWT layout trouble

How can i step space as between 3 buttons in right and bottom items; and memory and labelM ??? There must be equal space, moreover memory buttons and digit buttons must be equal height, help me to do this please, becouse my brain couldn t imagine how to do this this is code

package calc;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.wb.swt.SWTResourceManager;

public class View extends ViewPart {
    public Text inputText;
    public Text inputText2;
    public Label label;
    public Label label2;
    public Composite mainComposite;
    public Calculation calcul;

    public View()
    {
        calcul = new Calculation();

    }

    public void createPartControl(Composite parent) {
        Composite mainComposite = new Composite(parent, SWT.NONE);
        GridLayout gltop = new GridLayout(1, false);        
        gltop.numColumns = 1;       
        mainComposite.setLayout(gltop);
        //mainComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_BLUE));
        createTop(mainComposite);
        createBott(mainComposite);      
    }

    private void createTop(Composite parent)
    {
        GridLayout gltop = new GridLayout(1, false);        
        gltop.numColumns = 1;
        GridData data = new GridData(GridData.FILL_HORIZONTAL);     
        Composite topComposite = new Composite(parent, SWT.NONE);       
        topComposite.setLayout(gltop);
        topComposite.setLayoutData(data);
        //topComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_RED));

        /*inputText = new Text(topComposite, SWT.BORDER);
        inputText.setLayoutData(data);
        inputText.setFont(SWTResourceManager.getFont("", 18, SWT.BOLD));*/
        label = new Label(topComposite,SWT.RIGHT | SWT.BORDER);
        label.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
        label.setLayoutData(data);
        label.setFont(SWTResourceManager.getFont("", 18, SWT.BOLD));
        label.setText(calcul.output);
    }

    private void createBott(Composite parent)
    {
        GridLayout glbot = new GridLayout(1, false);        
        glbot.numColumns = 2;
        GridData data = new GridData(GridData.FILL_BOTH);       
        Composite botComposite = new Composite(parent, SWT.NONE);       
        botComposite.setLayout(glbot);
        botComposite.setLayoutData(data);
        //botComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_YELLOW));            

        createLeft(botComposite);       
        createRight(botComposite);      
    }

    private void createLeft(Composite parent)
    {           
        Composite leftComposite = new Composite(parent, SWT.NONE);  
        GridLayout glleft = new GridLayout(1, false);       
        GridData data = new GridData(GridData.FILL_BOTH);   
        leftComposite.setLayout(glleft);
        leftComposite.setLayoutData(data);
        //leftComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_CYAN)); 
        glleft.marginBottom = 5;
        glleft.marginTop = 7;
        label2 = new Label(leftComposite,SWT.BORDER | SWT.CENTER);
        label2.setLayoutData(data);
        double a = Double.parseDouble(label.getText());
        Button buttonMC = createFuncDigButtons(leftComposite, data, "M+",  P );
        Button buttonMR = createFuncDigButtons(leftComposite, data, "M-",  M );
        Button buttonMS = createFuncDigButtons(leftComposite, data, "MR",  R );
        Button buttonMpl = createFuncDigButtons(leftComposite, data, "MC",  c );
    }

    private void createRight(Composite parent)
    {
        GridLayout glright = new GridLayout(1, false);      
        GridData data = new GridData(GridData.FILL_BOTH);       
        Composite rightComposite = new Composite(parent, SWT.NONE);
        glright.numColumns = 1;
        glright.horizontalSpacing = 0;
        glright.verticalSpacing = 0;
        rightComposite.setLayout(glright);
        rightComposite.setLayoutData(data);
        //rightComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_GREEN));  

        createRightTop(rightComposite);
        createRightBot(rightComposite);
    }

    private void createRightTop(Composite parent)
    {
        Composite rightTopComposite = new Composite(parent, SWT.NONE);
        GridLayout glltop = new GridLayout(1, false);       
        GridData data = new GridData(GridData.FILL_BOTH);   
        glltop.numColumns = 3;
        glltop.marginBottom = 0;
        rightTopComposite.setLayout(glltop);
        rightTopComposite.setLayoutData(data);
        //rightTopComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_MAGENTA)); 

        Button buttonBack = createFuncDigButtons(rightTopComposite, data, "Backspace",  B );
        Button buttonC = createFuncDigButtons(rightTopComposite, data, "C",  C );
        Button buttonCE = createFuncDigButtons(rightTopComposite, data, "CE",  E );
    }

    private void createRightBot(Composite parent)
    {
        GridLayout glright = new GridLayout(1, false);      
        GridData data = new GridData(GridData.FILL_BOTH);       
        Composite rightBotComposite = new Composite(parent, SWT.NONE);      
        glright.numColumns = 5;
        glright.marginTop = 0;
        rightBotComposite.setLayout(glright);
        rightBotComposite.setLayoutData(data);
    //  rightBotComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_GRAY));      
        Button button7 = createFuncDigButtons(rightBotComposite, data, "7",  7 );
        Button button8 = createFuncDigButtons(rightBotComposite, data, "8",  8 );
        Button button9 = createFuncDigButtons(rightBotComposite, data, "9",  9 );
        Button buttonDev = createFuncDigButtons(rightBotComposite, data, "/",  / );
        Button buttonSQRT = createFuncDigButtons(rightBotComposite, data, "sqrt",  t );
        Button button4 = createFuncDigButtons(rightBotComposite, data, "4",  4 );
        Button button5 = createFuncDigButtons(rightBotComposite, data, "5",  5 );
        Button button6 = createFuncDigButtons(rightBotComposite, data, "6",  6 );
        Button buttonMult = createFuncDigButtons(rightBotComposite, data, "*",  * );
        Button buttonPer = createFuncDigButtons(rightBotComposite, data, "%",  % );
        Button button1 = createFuncDigButtons(rightBotComposite, data, "1",  1 );
        Button button2 = createFuncDigButtons(rightBotComposite, data, "2",  2 );
        Button button3 = createFuncDigButtons(rightBotComposite, data, "3",  3 );
        Button buttonMinus = createFuncDigButtons(rightBotComposite, data, "-",  - );
        Button buttonDev1 = createFuncDigButtons(rightBotComposite, data, "1/x",  X );
        Button button0 = createFuncDigButtons(rightBotComposite, data, "0",  0 );
        Button buttonPM = createFuncDigButtons(rightBotComposite, data, "+/-",  p );
        Button buttonD = createFuncDigButtons(rightBotComposite, data, ".",  . );       
        Button buttonPlus = createFuncDigButtons(rightBotComposite, data, "+",  + );        
        Button buttonR = createFuncDigButtons(rightBotComposite, data, "=",  = );
    }

    public Button createFuncDigButtons(Composite parent, GridData gridData, final String digit, final char formethod)
    {
        Button button = new Button(parent, SWT.PUSH);
          button.setLayoutData(gridData);
          button.setText(String.valueOf(digit));
          button.addSelectionListener(new SelectionListener() {
            @Override
            public void widgetSelected(SelectionEvent arg0) {
                calcul.getDigit(formethod);
                label.setText(calcul.output);
                if (calcul.memtrue)
                {
                    label2.setText("M");
                }
                else
                {
                    label2.setText("");
                }
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent arg0) {
              /* do nothing */
            }
          });
          button.addKeyListener(new KeyListener() {

            @Override
            public void keyReleased(KeyEvent arg0) {
            }

            @Override
            public void keyPressed(KeyEvent arg0) {         
                    calcul.getDigit(arg0.character);
                    label.setText(calcul.output);
            }});
          button.setFocus();
        return button;
    }

    public void setFocus() {
    }
}

http://i.stack.imgur.com/KJLP9.jpg” alt=“calculator”/。

最佳回答

Don t 产生左和右翼。 相反,将所有纽州(落后空间、C和CE除外)直接置于<条码>下,并使用空标记进行间隔。 正如“Chris Dennett”所指出的,确保每个植被都有自己的布局数据。

问题回答

暂无回答




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签