有朋友能详细介绍一下java中sort的用法吗

有朋友能详细介绍一下java中sort的用法吗,第1张

1javautilCollectionssort(List list)与Comparable,Comparator 接口

2javautilArrayssort(T[])与Comparable,Comparator 接口

3JFace中 TableView ,TreeView, ListView的排序,实现ViewerSorter

两者的实现类似,不同的是针对的对象不一样。Collectionssort()针对的是List,Arrayssort()针对的是数组。如果List中或者数组中存的都是基本数据类型(byte、short、int、long、float、double、char、boolean) 和 String,那么我们直接使用即可。如果其中存的数据是对象,那么有两种方法,一是每个对象实现Comparable接口,二是使用Collectionssort(List list,Comparator c)或者Arrayssort(T[],Comparator c),临时实现一个Comparator 来实现排序。

最后是一个以TableView 为例。

TableViewer tableViewer = new TableViewer(detailGroup, SWTBORDER | SWTV_SCROLL

| SWTH_SCROLL | SWTFULL_SELECTION);

tableViewersetSorter(new FolderSorter());

public class FolderSorter extends ViewerSorter {

。。。。。。

}

@description {description}

@className TableViewTest

@author share

@date 2012-5-7 上午11:36:55

/

public class TableViewerTest {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

new TableViewerTest()creatTable();

}

private static Display display = new Display();

private static Shell shell = new Shell(display);

//tableViewer数据源

private List<Person> list = new ArrayList<Person>();

private Table table;

/

创建一个TableViewer对象-->设置数据源/设置内容提供者/设置Table列标签内容提供者

-->为TableViewer对象的Table设置没一个列名

public javaxswingJTable sNameTable;//定义table

private DefaultTableModel tableModel = new JTableUtilDefaultTableModel();//定义Model

UpctableModelsetColumnIdentifiers(new String[] {"ID" ,"NAME" ,"AGE"});//定义表头

sNameTablesetModel(tableModel);//设置表格tableModel

//添加值

tableModel addRow(new Object[]{"1","CC","20"});

tableModel addRow(new Object[]{"2","DD","21"});

tableModel addRow(new Object[]{"3","DD","22"});

int row = sNameTablegetSelectedRow();//取得表格选中行

int sID = tableModel getValueAt(row, 2)toString());//取得表格选中行的AGE字段,如果选中第三行则,sID = "22"(表格从0标签开始)

谢谢,纯手敲,望采纳!

显示

Tree tree=new Tree(compA[0],SWTNONE);//创建树

TreeItem item=new TreeItem(tree,SWTNONE);

itemsetText("音乐");

TreeItem child=new TreeItem(item,SWTNONE);//在此TreeItem上加入

TreeItem child1=new TreeItem(child,SWTNONE);

TreeItem child2=new TreeItem(child,SWTNONE);

child1setText("安静");

child2setText("简单爱");

TreeEditor editor=new TreeEditor(tree);//创建TreeEditor

editorhorizontalAlignment = SWTLEFT;

editorminimumWidth = 50;

CLabel lbl = new CLabel(tree, SWTSHADOW_OUT);//创建控件,显示

lblsetSize(120, 30);

lblsetBackground(SWTResourceManagergetImage(TestTreeclass, "/images/forwardgif"));

editorsetEditor(lbl, child, 0); //为TreeEditor加在child上,child上加入控件lbl,lbl上显示

标签器的几个方法中

getImage 返回的是TreeItem之前的图像

getText 返回的是TreeItem的文本

都不能实现这种要求

充满的话 创建一个Canvas 加上addPaintListener事件 重绘Image

final Canvas lbl = new Canvas(tree, SWTSHADOW_OUT);

lbladdPaintListener(new PaintListener()

{

public void paintControl(PaintEvent e) {

Image image=SWTResourceManagergetImage(TestTreeclass, "/images/forwardgif");

ImageData data=imagegetImageData();

ImageData data1=datascaledTo(lblgetSize()x, lblgetSize()y);

Image im=new Image(edisplay,data1);

egcdrawImage(im,0,0);

imdispose();

}

});

editorsetEditor(lbl, child, 0);

另外,虚机团上产品团购,超级便宜

首先,楼主你如果标题开头写swt/jface里,回答的人会多很多。

然后,你这个是布局的问题。

layout是决定了当前容器的布局格式

layoutData则是决定了当前控件在上级容器里的布局

tableViewer一般是使用的GridLayout

所以,你需要的是

GridData gridData=new GridData();

然后修改gridData的属性到你满意

再 tablesetLayoutData(gridData);

比较AWT和Swing

AWT和Swing组件体系

a)Swing 通过在父组件上动态调用add()和remove()方法 来对组件树进行动态维护 因此 可以存在没有父组件的子组件

b)SWT 通过在构造函数的参数中 指定父组件 因此 不可能存在没有父组件的子组件

AWT和Swing组件绘制

a)Swing 通过调用组件的paint()方法来进行组件的绘制 组件进一步对他的子组件调用paint() 从而完成整棵组件树的绘制 通过子类化 重写paint()方法 可以完全定制一个组件的绘制

b)SWT SWT组件只是本地平台上实际组件的一个代理 实际组件采用win 编程方式进行绘制 绘制的过程不在JVM中完成 因此 子类化也不能对绘制进行完全定制 当SWT组件进行绘制时 他在完成了本地的绘制以后 会返回JVM 然后对所有已注册的PaintListener发出通知 因此 通过注册PaintListener可以对组件绘制进行一定程度上的修改

AWT和Swing事件模型

a)Swing中的事件会跟据当前的焦点进行发送 父组件不能对事件进行过滤 Swing中的事件监听器都是有类型的 因此每个组件所能支持的事件类型是通过方法名来限定的 不能扩展

b)SWT中的事件也是根据当前的焦点进行发送 父组件不能对事件进行过滤 SWT中支持有类型的监听器 也支持无类型的监听器 通过addListener(type listener) 我们可以为组件添加任何类型的监听器

AWT和Swing包设计

a)Swing是一个纯粹的组件库 他没有图形的 *** 作 他的绘制最终转发给Java D来完成

b)SWT包含了组件库和图形库 他的结构与AWT比较接近

其它

AWT和SWT实现原理不同 AWT控件相当于是一笔一画绣出来的 参加 java awt Component paint(Graphics g) 性能差 而SWT调用了 *** 作系统后台原生库 eclipse swt widgets Control类型中就没有类似的paint方法了 但是有一个接口 eclipse swt graphics Drawable 实现原理的不同带来了性能和用户视觉的差异

SWING 是基于AWT提供的MVC不完全实现 JFACE是基于SWT提供的MVC不完全实现 两者的核心作用都是提供了viewer和模型封装的概念 从设计实现层面看 SWING更加唯美一些 JFACE则更加侧重于实用 SWING和 JFACE两者都偏重于行为控制上下文 而对UI数据(例如 一个文本框控件中的内容)的管理都没有做太多的设计 JFACE中略有改进 提供了 setData的概念 JFACE是为了Eclipse而生的 虽然后来 RCP出来了 又做了其他的包装宣传 典型的体现就是提供了JFace Text Framework和其他一些用户构建Eclipse元素的UI支持 也提供了一些系统资源管理(ImageRegsitry ResourceManager等)等附加功能

lishixinzhi/Article/program/Java/hx/201311/26412

以上就是关于有朋友能详细介绍一下java中sort的用法吗全部的内容,包括:有朋友能详细介绍一下java中sort的用法吗、jface的tableviewer中下拉框怎么应用、java 如何获取jtabel中被选中行的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9282136.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存