Java 获取某个表列下的元素列表
此表由下面的代码生成。(表中的数据是垃圾) 问题: 如何按项目的显示顺序获取某列下的项目列表 我想做一些类似table.GetListFromColumn(“carmake”)的事情,这样我就有了[“阿斯顿·马丁”、“保时捷911”、“法拉利”] 或者beanItemContainer.GetListFromColumn(“carmake”)Java 获取某个表列下的元素列表,java,vaadin,Java,Vaadin,此表由下面的代码生成。(表中的数据是垃圾) 问题: 如何按项目的显示顺序获取某列下的项目列表 我想做一些类似table.GetListFromColumn(“carmake”)的事情,这样我就有了[“阿斯顿·马丁”、“保时捷911”、“法拉利”] 或者beanItemContainer.GetListFromColumn(“carmake”) @覆盖 公共无效初始化(VAADINQUEST请求){ 制动响应时间1=新制动响应时间(0.2f); 制动响应时间2=新制动响应时间(0.8f); 制动
@覆盖
公共无效初始化(VAADINQUEST请求){
制动响应时间1=新制动响应时间(0.2f);
制动响应时间2=新制动响应时间(0.8f);
制动响应时间3=新制动响应时间(0.5f);
Collectionc=newarraylist();
c、 添加(新跑车(“法拉利”,180.0,“汤姆”,time1));
c、 添加(新跑车(“阿斯顿马丁”,165.0,“哈利”,时代2));
c、 添加(新款跑车(“保时捷911”,145.0,“迪克”,time3));
MyBeanItemContainer=新的MyBeanItemContainer(SportsCar.class,c);
Table Table=新表();
t、 setContainerDataSource(容器);
此.setContent(表);
}
公共类BrakerResponseTime{
浮动时间;
/**
*创建Demo.BrakeResponseTime。
*/
公共制动器响应时间(浮动时间){
这个时间=时间;
}
/**
*抓紧时间。
*
*@报时。
*/
公共浮点getTime(){
返回时间;
}
/**
*设定时间。
*
*@param时间
*时间。
*/
公共无效设置时间(浮动时间){
这个时间=时间;
}
@凌驾
公共字符串toString(){
返回时间+“/%”;
}
/*
*(非Javadoc)
*
*@see java.lang.Comparable#compareTo(java.lang.Object)
*/
@凌驾
公共int比较(制动响应时间o){
if(null==o){
返回1;
}
if(time==o.getTime()){
返回0;
}
返回(时间
公共类MyBeanItemContainer扩展了BeanItemContainer{
/**
*创建Demo.MyBeanItemContainer。
*/
公共MyBeanItemContainer(类类型,集合){
超级(类型、集合);
}
私有int compareBrakeResponseTimeWithNullCheck(BrakerResponseTimeO1,BrakerResponseTimeO2){
如果(空==o1&&(空==o2)){
返回0;
}否则如果(null==o1&&(null!=o2)){
返回-1;
}否则如果(空!=o1&&(空==o2)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
@凌驾
公共无效排序(最终对象[]属性ID,最终布尔值[]升序){
super.sort(propertyId,升序);
System.out.println(Arrays.toString(propertyId));
最终布尔排序集=升序[0];
最终对象sortContainerPropertyId=propertyId[0];
List=super.getAllItemId();
Collections.sort(list,newcomparator(){
@凌驾
公共int比较(最终跑车o1,最终跑车o2){
int结果=0;
if(“responseTime”.equals(sortContainerPropertyId)){
结果=compareBrakeResponseTimeWithNullCheck(o1.getResponseTime(),o2.getResponseTime());
}
如果(!排序){
结果*=-1;
}
返回结果;
}
});
}
}
公共级跑车{
弦卡马克;
双上速度;
字符串驱动器;
制动响应时间;
公共跑车(弦乐卡马克,双上速,弦乐驱动,刹车响应时间){
this.carMake=carMake;
this.topspeed=最高速度;
this.driver=driver;
this.responseTime=responseTime;
}
/**
*去拿卡马克。
*
*@归还卡马克。
*/
公共字符串getcarMake(){
返回卡马克;
}
/**
*设置卡马克。
*
*@param carMake
*卡马克。
*/
公共无效设置carMake(字符串carMake){
this.carMake=carMake;
}
/**
*取得最高速度。
*
*@返回最高速度。
*/
公共双getTopspeed(){
返回速度;
}
/**
*设定最高速度。
*
*@param-topspeed
*最高速度。
*/
公共空隙设置速度(双速度){
this.topspeed=最高速度;
}
/**
*叫司机来。
*
*@把司机还给我。
*/
公共字符串getDriver(){
返回驱动器;
}
/**
*让司机下车。
*
*@param驱动程序
*司机。
*/
公共无效设置驱动程序(字符串驱动程序){
this.driver=driver;
}
/**
*获得响应时间。
*@返回响应时间。
*/
公共制动器响应时间getResponseTime(){
返回响应时间;
}
/**
*设定响应时间。
*@param responseTime响应时间。
*/
公共无效setResponseTime(BrakerResponseTime responseTime){
this.responseTime=responseTime;
}
}
我没有意识到我可以通过这种方式访问bean容器的属性
container.getIdByIndex(0).getCarMake()
这就是我要找的 这是关于获取格式化/过滤的值吗?或者你为什么不能用你的容器?
public class BrakeResponseTime implements Comparable<BrakeResponseTime> {
float time;
/**
* Create a Demo.BrakeResponseTime.
*/
public BrakeResponseTime(float time) {
this.time = time;
}
/**
* Get the time.
*
* @return the time.
*/
public float getTime() {
return time;
}
/**
* Set the time.
*
* @param time
* the time.
*/
public void setTime(float time) {
this.time = time;
}
@Override
public String toString() {
return time +"/%";
}
/*
* (non-Javadoc)
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(BrakeResponseTime o) {
if (null == o) {
return 1;
}
if(time==o.getTime()){
return 0;
}
return (time < o.getTime() ? -1 : 1);
}
}
public class MyBeanItemContainer extends BeanItemContainer<SportsCar> {
/**
* Create a Demo.MyBeanItemContainer.
*/
public MyBeanItemContainer(Class<SportsCar> type, Collection<SportsCar> collection) {
super(type, collection);
}
private int compareBrakeResponseTimeWithNullCheck(BrakeResponseTime o1, BrakeResponseTime o2) {
if (null == o1 && (null == o2)) {
return 0;
} else if (null == o1 && (null != o2)) {
return -1;
}else if(null != o1 && (null == o2)){
return 1;
} else {
return o1.compareTo(o2);
}
}
@Override
public void sort(final Object[] propertyId, final boolean[] ascending) {
super.sort(propertyId, ascending);
System.out.println(Arrays.toString(propertyId));
final boolean sortAscending = ascending[0];
final Object sortContainerPropertyId = propertyId[0];
List<SportsCar> list = super.getAllItemIds();
Collections.sort(list, new Comparator<SportsCar>() {
@Override
public int compare(final SportsCar o1, final SportsCar o2) {
int result = 0;
if ("responseTime".equals(sortContainerPropertyId)) {
result = compareBrakeResponseTimeWithNullCheck(o1.getResponseTime(), o2.getResponseTime());
}
if (!sortAscending) {
result *= -1;
}
return result;
}
});
}
}
public class SportsCar {
String carMake;
double topspeed;
String driver;
BrakeResponseTime responseTime;
public SportsCar(String carMake, double topspeed, String driver, BrakeResponseTime responseTime) {
this.carMake = carMake;
this.topspeed = topspeed;
this.driver = driver;
this.responseTime = responseTime;
}
/**
* Get the carMake.
*
* @return the carMake.
*/
public String getcarMake() {
return carMake;
}
/**
* Set the carMake.
*
* @param carMake
* the carMake.
*/
public void setcarMake(String carMake) {
this.carMake = carMake;
}
/**
* Get the topspeed.
*
* @return the topspeed.
*/
public double getTopspeed() {
return topspeed;
}
/**
* Set the topspeed.
*
* @param topspeed
* the topspeed.
*/
public void setTopspeed(double topspeed) {
this.topspeed = topspeed;
}
/**
* Get the driver.
*
* @return the driver.
*/
public String getDriver() {
return driver;
}
/**
* Set the driver.
*
* @param driver
* the driver.
*/
public void setDriver(String driver) {
this.driver = driver;
}
/**
* Get the responseTime.
* @return the responseTime.
*/
public BrakeResponseTime getResponseTime() {
return responseTime;
}
/**
* Set the responseTime.
* @param responseTime the responseTime.
*/
public void setResponseTime(BrakeResponseTime responseTime) {
this.responseTime = responseTime;
}
}
container.getIdByIndex(0).getCarMake()