SWT JAVA 동적으로 컨트롤을 추가하는 다이얼로그2

 

swt_java_DynamicDialog.png

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

package com.lgcns.stechstar.abcrawlerstudio.ActionAddDialog;



import java.awt.Color;
import java.util.ArrayList;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Combo;


public class ADD14DynAddLooping extends Dialog {
   private Composite composite_2;
   int baseX = 0;
   int baseY = 0;
   int iNumOfEle = 0;
   ArrayList<Text> textTarget = new ArrayList<Text>();
   ArrayList<Label> lblTargetNum = new ArrayList<Label>();
   Button btnAdd1 = null;
   Display display = null;
   Shell shell = null;
   static int iNum = 0;
   Composite composite = null;
   static ScrolledComposite scrolledComposite = null;
    /**
     * Create the dialog.
     * @param parentShell
     */
    public ADD14DynAddLooping(Shell parentShell) {
    	
        super(parentShell);
        shell = parentShell;
    }

    /**
     * Create contents of the dialog.
     * @param parent
     */
    @Override
    protected Control createDialogArea(final Composite parent) {
        Composite container = (Composite) super.createDialogArea(parent);
        container.setLayout(new FillLayout(SWT.HORIZONTAL));
        parent.layout(true, true);
        scrolledComposite = new ScrolledComposite(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
        scrolledComposite.setExpandHorizontal(true);
        scrolledComposite.setExpandVertical(true);

        scrolledComposite.addControlListener(new ControlAdapter() {
        	public void controlResized(ControlEvent e) {
        	Rectangle r = scrolledComposite.getClientArea();
        	scrolledComposite.setMinSize(parent.computeSize(r.width, r.height));
        	}
        	});
        composite = new Composite(scrolledComposite, SWT.NONE);
        composite.setLayout(new GridLayout(1, false));
        scrolledComposite.setContent(composite);
        scrolledComposite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));

        Composite composite_1 = new Composite(composite, SWT.NONE);
        composite_1.setLayout(null);
        //Composite composite_1 = new Composite(composite, SWT.NONE);
        //composite_1.setLayout(null);
        //GridData gd_composite_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
        //gd_composite_1.heightHint = 49;
        //gd_composite_1.widthHint = 427;
        //composite_1.setLayoutData(gd_composite_1);

        //***********************************************************
    	//shell.setSize(480, 240);
		//shell.setText(getText());
		
		Label lblUrl = new Label(composite_1, SWT.NONE);
		//lblUrl.setFont(SWTResourceManager.getFont("맑은 고딕", 18, SWT.NORMAL));
		lblUrl.setBounds(10, 10, 143, 32);
		lblUrl.setText("Looping");
		
		Label lblAttribute = new Label(composite_1, SWT.NONE);
		//lblAttribute.setFont(SWTResourceManager.getFont("맑은 고딕", 12, SWT.NORMAL));
		lblAttribute.setBounds(10, 62, 100, 21);
		lblAttribute.setText("Looping Data :");
		
		Combo cmbLoopingData = new Combo(composite_1, SWT.NONE);
		cmbLoopingData.setBounds(116, 62, 200, 21);
		cmbLoopingData.add("없음");
		cmbLoopingData.add("targetURL(default)");
		cmbLoopingData.add("searchKeyWord");
		
		Label lblValue = new Label(composite_1, SWT.NONE);
		//lblValue.setFont(SWTResourceManager.getFont("맑은 고딕", 12, SWT.NORMAL));
		//lblValue.setBounds(10, 62 + 37 + 16, 100, 21);
		lblValue.setText("Text       :");
		
		Text textText = new Text(composite_1, SWT.BORDER);
		//textText.setBounds(116, 62 + 37 + 16, 325, 21);
		
			
		
		
	
    
        //*************************************************
        Label lblDefault = new Label(composite_1, SWT.NONE);
        lblDefault.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblDefault.setText("Default:");

        Combo combo = new Combo(composite_1, SWT.NONE);
        combo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));

        composite_2 = new Composite(composite, SWT.NONE);
        composite_2.setLayout(null);
        //GridData gd_composite_2 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
        /*gd_composite_2.heightHint = 32;
        gd_composite_2.widthHint = 426;*/
        //composite_2.setLayoutData(gd_composite_2);

        //Composite composite_3 = new Composite(composite, SWT.NONE);
        
        //composite_3.setLayout(null);
        //GridData gd_composite_3 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
        //gd_composite_3.heightHint = 38;
        //gd_composite_3.widthHint = 427;
        //composite_3.setLayoutData(gd_composite_3);

        btnAdd1 = new Button(composite_2, SWT.NONE);
        btnAdd1.setBounds(297, 10, 20, 20);
        btnAdd1.setText("+");
        
        
        Label iblTarget = new Label(composite_2, SWT.NONE);
        iblTarget.setText("Target " + (iNumOfEle+1) + ":");
        iblTarget.setBounds(10,10, 50, 20);
        lblTargetNum.add(iblTarget);
        //label2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false,
        //        false, 1, 1));
        
        //lblTargetNum.get(iNumOfEle).setBackground(new Color(Color.RED);
        Text textTg = new Text(composite_2, SWT.BORDER);
        textTg.setBounds(115, 10, 180, 20);
        textTarget.add(textTg);
        iNumOfEle++;
        //text_12.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
        //        false, 1, 1));
        
        //Text text13 = new Text(composite_2, SWT.BORDER);
        //text13.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
        //       false, 1, 1));

        //Button btnDelete = new Button(composite_2, SWT.NONE);
        //btnDelete.setText("delete");
        //composite_2.layout(true);
        //composite_2.setExpandVertical(true);

        //composite_2.layout();
        //Point p = composite.getSize();
        //composite.setSize(SWT.DEFAULT,SWT.DEFAULT);
        //composite.setSize(p);

        composite.layout();
        btnAdd1.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {

            	//Button btnAdd1 = new Button(composite_2, SWT.NONE);
                btnAdd1.setBounds(297, 10 + iNumOfEle * 25, 20, 20);
                //btnAdd1.setText("+");
                
                
                Label iblTarget = new Label(composite_2, SWT.NONE);
                iblTarget.setText("Target " + (iNumOfEle+1) + ":");
                iblTarget.setBounds(10,10  + iNumOfEle * 25, 50, 20);
                lblTargetNum.add(iblTarget);
                //label2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false,
                //        false, 1, 1));
                
                //lblTargetNum.get(iNumOfEle).setBackground(new Color(Color.RED);
                Text textTg = new Text(composite_2, SWT.BORDER);
                textTg.setBounds(115, 10 + iNumOfEle * 25, 180, 20);
                textTarget.add(textTg);
                
                iNumOfEle++;
                composite_2.layout();
                composite_2.layout(true,true);
                
                Point p = composite.getSize();
                composite.setSize(SWT.DEFAULT,SWT.DEFAULT);
                composite.setSize(p);
            
                composite.layout(true,true);
                if(iNumOfEle > 14)
                {
                	
                	iNum++;
                	scrolledComposite.setMinWidth(450);
                	scrolledComposite.setMinHeight(500 + iNum * 25 );
                	 shell.setSize(450, 500 + iNum * 25);
                }	

                scrolledComposite.setExpandHorizontal(true);
                scrolledComposite.setExpandVertical(true);

            }
        });
        

//       Composite composite_4 = new Composite(composite, SWT.NONE);
//        
//        composite_4.setLayout(null);
// 
//
//    	Button btnAdd = new Button(composite_4, SWT.NONE);
//		btnAdd.setBounds(264, 176, 76, 25);
//		btnAdd.setText("추가");
//		btnAdd.addListener(SWT.Selection, new Listener() {
//				public void handleEvent(Event event) {
//					//com.lgcns.stechstar.abcrawlerstudio.ItemActionView.arrAdd03SetInput = new ArrayList<String>();
//					//com.lgcns.stechstar.abcrawlerstudio.ItemActionView.arrAdd03SetInput.add(textInput.getText());
//					//com.lgcns.stechstar.abcrawlerstudio.ItemActionView.arrAdd03SetInput.add(textText.getText());
//					//composite_1.dispose();
//				}
//			});
//
//
//		
//		Button btnCancel = new Button(composite_4, SWT.NONE);
//		btnCancel.setBounds(365, 176, 76, 25);
//		btnCancel.setText("취소");
//
//		btnCancel.addListener(SWT.Selection, new Listener() {
//				public void handleEvent(Event event) {
//					//shell.dispose();
//				}
//			});


	

        Point p = composite.getSize();
        composite.setSize(SWT.DEFAULT,SWT.DEFAULT);
        composite.setSize(p);
    
        composite.layout(true,true);

        return container;
    }

    @Override
	protected void buttonPressed(int buttonId) {
		// TODO Auto-generated method stub
    	composite_2.layout();
        composite_2.layout(true,true);
        
        Point p = composite.getSize();
        composite.setSize(SWT.DEFAULT,SWT.DEFAULT);
        composite.setSize(p);
    
        composite.layout(true,true);
        if(iNumOfEle > 14)
        {
        	
        	iNum++;
        	scrolledComposite.setMinWidth(450);
        	scrolledComposite.setMinHeight(500 + iNum * 25 );
        	
        }
		super.buttonPressed(buttonId);
	}

	/**
     * Create contents of the button bar.
     * @param parent
     */
    @Override
    protected void createButtonsForButtonBar(Composite parent) {
        createButton(parent, IDialogConstants.OK_ID,  /*IDialogConstants.OK_LABEL*/ "추가",
                true);
        createButton(parent, IDialogConstants.CANCEL_ID,
                /*IDialogConstants.CANCEL_LABEL*/"취소", false);
    }

    /**
     * Return the initial size of the dialog.
     */
    @Override
    protected Point getInitialSize() {
        return new Point(450, 600);
    }

public static void main(String[] args){

    Shell shell =  new Shell(new Display());
    //shell.setLayout(new FillLayout());
    ADD14DynAddLooping dd = new ADD14DynAddLooping(shell);
    System.out.println(dd.open());

}
}

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED