- 전체
- 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 동적으로 컨트롤을 추가하는 다이얼로그2
2015.04.27 17:28
SWT JAVA 동적으로 컨트롤을 추가하는 다이얼로그2
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()); } }
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.