欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SWT(JFace)體驗之List演示匯總

 更新時間:2009年06月25日 11:25:51   作者:  
SWT(JFace)體驗之List演示代碼匯總

最后再看一個綜合性強一點的:
SampleListViewer.java
復(fù)制代碼 代碼如下:

package swt_jface.demo3;
import java.util.Iterator;
import java.util.Vector;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class SampleListViewer {

Display display = new Display();
Shell shell = new Shell(display);

ListViewer listViewer;
public static class Language {
public String genre;
public boolean isObjectOriented;

public Language() { }
public Language(String genre, boolean isObjectOriented) {
this.genre = genre;
this.isObjectOriented = isObjectOriented;
}

public String toString() {
return "Lang: " + genre + " [" + (isObjectOriented ? "Object-oriented" : "Procedural") + "]";
}
}

Vector languages = new Vector();

private void init() {
languages.add(new Language("Java", true));
languages.add(new Language("C", false));
languages.add(new Language("C++", true));
languages.add(new Language("SmallTalk", true));

listViewer = new ListViewer(shell);


listViewer.setContentProvider(new IStructuredContentProvider() {
public Object[] getElements(Object inputElement) {
Vector v = (Vector)inputElement;
return v.toArray();
}

public void dispose() {
System.out.println("Disposing ...");
}
public void inputChanged(
Viewer viewer,
Object oldInput,
Object newInput) {
System.out.println("Input changed: old=" + oldInput + ", new=" + newInput);
}
});

//listViewer.setContentProvider(new ArrayContentProvider());

listViewer.setInput(languages);

listViewer.setLabelProvider(new LabelProvider() {
public Image getImage(Object element) {
return null;
}
public String getText(Object element) {
return ((Language)element).genre;
}
});

listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection)event.getSelection();
StringBuffer sb = new StringBuffer("Selection - ");
sb.append("tatal " + selection.size() + " items selected: ");
for(Iterator iterator = selection.iterator(); iterator.hasNext(); ) {
sb.append(iterator.next() + ", ");
}
System.out.println(sb);
}
});

listViewer.addFilter(new ViewerFilter() {
public boolean select(
Viewer viewer,
Object parentElement,
Object element) {

if(((Language)element).isObjectOriented)
return true;
else
return false;
}
});

listViewer.setSorter(new ViewerSorter(){
public int compare(Viewer viewer, Object e1, Object e2) {
return ((Language)e1).genre.compareTo(((Language)e2).genre);
}
});
// Object[] toBeSelectedItems = new Object[2];
// toBeSelectedItems[0] = languages.elementAt(languages.size()-1);
// toBeSelectedItems[1] = languages.elementAt(languages.size()-2);
// IStructuredSelection selection = new StructuredSelection(toBeSelectedItems);
//
// listViewer.setSelection(selection);

// Vector v = new Vector();
// v.addElement(new Language("VB", true));
//
// listViewer.setInput(v);
//
// listViewer.add(new Language("C#", true));
}
Button buttonAdd;
Button buttonRemove;
Button buttonModify;

private void addButtons() {

Composite composite = new Composite(shell, SWT.NULL);
FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
fillLayout.spacing = 2;

composite.setLayout(fillLayout);

buttonAdd = new Button(composite, SWT.PUSH);
buttonAdd.setText("Add");

buttonModify = new Button(composite, SWT.PUSH);
buttonModify.setText("Modify");

buttonRemove = new Button(composite, SWT.PUSH);
buttonRemove.setText("Remove");

buttonAdd.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String text = OptionPane.showInputDialog(shell, "New language genre: ", "Add new element", null);
if(text != null) {
languages.add(new Language(text, true));
}
listViewer.refresh(false);
}
});
buttonModify.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
IStructuredSelection selection = (IStructuredSelection)listViewer.getSelection();
Language language = (Language)selection.getFirstElement();
if(language == null) {
System.out.println("Please select a language first.");
return;
}
String text = OptionPane.showInputDialog(shell, "Rename: ", "Modify genre", language.genre);
if(text != null) {
language.genre = text;
}
listViewer.update(language, null);
}
});

buttonRemove.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
IStructuredSelection selection = (IStructuredSelection)listViewer.getSelection();
Language language = (Language)selection.getFirstElement();
if(language == null) {
System.out.println("Please select a language first.");
return;
}
languages.remove(language);
System.out.println("Removed: " + language);
listViewer.refresh(false);
}
});
}
public SampleListViewer() {

RowLayout rowLayout = new RowLayout();
shell.setLayout(rowLayout);
(new Label(shell, SWT.NULL)).setText("What programming languages are you proficient in? ");
init();
addButtons();
shell.pack();
shell.open();

while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public static void main(String[] args) {
new SampleListViewer();
}
}

OptionPane.java
復(fù)制代碼 代碼如下:

package swt_jface.demo3;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;
public class OptionPane {

public static String showInputDialog(Shell parent, String message, String title, String initialValue) {

final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE);
//shell.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_WHITE));

if(title != null)
shell.setText(title);

GridLayout gridLayout = new GridLayout(1, false);
shell.setLayout(gridLayout);

Composite content = new Composite(shell, SWT.NULL);
content.setLayout(new RowLayout());
//content.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_CYAN));

GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
content.setLayoutData(gridData);

(new Label(content, SWT.NULL)).setText(message);
final Text text = new Text(content, SWT.SINGLE | SWT.BORDER);
if(initialValue != null)
text.setText(initialValue);

Composite buttons =new Composite(shell, SWT.NULL);

gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
buttons.setLayoutData(gridData);

FillLayout fillLayout = new FillLayout();
fillLayout.spacing = 5;
buttons.setLayout(fillLayout);

final Button buttonOK = new Button(buttons, SWT.PUSH);
final Button buttonCancel = new Button(buttons, SWT.PUSH);

buttonOK.setText("OK");
buttonCancel.setText("Cancel");


final class DialogSelectionListener implements SelectionListener {
public String returnText;

public void widgetSelected(SelectionEvent e) {
onSelected(e.widget);
}
public void widgetDefaultSelected(SelectionEvent e) {
onSelected(e.widget);
}

private void onSelected(Widget widget) {
if(widget == buttonOK)
returnText = text.getText();
shell.dispose();
}
}

DialogSelectionListener listener = new DialogSelectionListener();

buttonCancel.addSelectionListener(listener);
buttonOK.addSelectionListener(listener);

shell.pack();

if(parent != null) {
Rectangle parentBounds = parent.getBounds();
Point shellSize = shell.getSize();
shell.setLocation( parentBounds.x+(parentBounds.width-shellSize.x)/2, parentBounds.y+(parentBounds.height-shellSize.y)/2 );
}

shell.open();

while (!shell.isDisposed()) {
if (!shell.getDisplay().readAndDispatch()) {
shell.getDisplay().sleep();
}
}

return listener.returnText;
}
}

相關(guān)文章

  • Spring?Boot?中starter的原理詳析

    Spring?Boot?中starter的原理詳析

    這篇文章主要介紹了Spring?Boot?中starter原理詳析,文章圍繞主題展開springboot的插件機制和starter原理相關(guān)資料,需要的小伙伴可以參考一下
    2022-06-06
  • SpringBoot+Vue實現(xiàn)EasyPOI導(dǎo)入導(dǎo)出的方法詳解

    SpringBoot+Vue實現(xiàn)EasyPOI導(dǎo)入導(dǎo)出的方法詳解

    項目開發(fā)過程中,很大的需求都有 導(dǎo)入導(dǎo)出功能。本文將利用SpringBoot+Vue實現(xiàn)EasyPOI導(dǎo)入導(dǎo)出功能,感興趣的可以了解一下
    2022-08-08
  • Java 實現(xiàn)漢字轉(zhuǎn)換為拼音的實例

    Java 實現(xiàn)漢字轉(zhuǎn)換為拼音的實例

    這篇文章主要介紹了Java 實現(xiàn)漢字轉(zhuǎn)換為拼音的實例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • springboot 異步調(diào)用的實現(xiàn)方法

    springboot 異步調(diào)用的實現(xiàn)方法

    這篇文章主要介紹了springboot 異步調(diào)用的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 淺談JVM之類的加載鏈接和初始化

    淺談JVM之類的加載鏈接和初始化

    有了java class文件之后,為了讓class文件轉(zhuǎn)換成為JVM可以真正運行的結(jié)構(gòu),需要經(jīng)歷加載,鏈接和初始化的過程。這三個過程是怎么工作的呢?在本文中你將會找到答案。
    2021-06-06
  • Java 基礎(chǔ)語法 異常處理

    Java 基礎(chǔ)語法 異常處理

    這篇我們就來介紹Java 基礎(chǔ)語法中長遇到的那些異常及處理方法的一下相關(guān)資料,感興趣的小伙伴可以參考一下下面文章的詳細內(nèi)容,希望對你有所幫助
    2021-10-10
  • Java實現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼

    Java實現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼

    在平時的開發(fā)中,我們時常會遇到需要將"樹形List"與"扁平List"互轉(zhuǎn)的情況,本文為大家整理了Java實現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼,希望對大家有所幫助
    2023-05-05
  • java多線程之鐵路售票系統(tǒng)

    java多線程之鐵路售票系統(tǒng)

    這篇文章主要為大家詳細介紹了java多線程之鐵路售票系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java中的BlockingQueue接口源碼解析

    Java中的BlockingQueue接口源碼解析

    這篇文章主要介紹了Java中的BlockingQueue接口源碼解析,BlockingQueue接口表示阻塞隊列,是Java并發(fā)包中阻塞隊列的接口定義規(guī)范,阻塞隊列意味著對于該隊列的操作是線程安全的,當(dāng)多個線程存放元素進入隊列或者從隊列中取出元素都是線程安全的,需要的朋友可以參考下
    2023-11-11
  • spring系列筆記之常用注解

    spring系列筆記之常用注解

    這篇文章主要給大家介紹了關(guān)于spring系列筆記之常用注解的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論