eclipse TableViewer显示表中数据(mysql)
1、新建一个界面,不熟悉操作看下面的经验。
2、显示表的数据制作一个实体类:
public class Shangpinxinxi{
private String fenlei;
private String mingcheng;
private String zhujima;
private String danwei;
private float jiage;
private float hyjiage;
public String getfenlei(){
return fenlei;
}
public String getmingcheng(){
return mingcheng;
}
public String getzhujima(){
return zhujima;
}
public String getdanwei(){
return danwei;
}
public float getjiage(){
return jiage;
}
public float gethyjiage(){
return hyjiage;
}
public void setfenlei(String fenlei){
this.fenlei=fenlei;
}
public void setmingcheng(String mingcheng){
this.mingcheng=mingcheng;
}
public void setzhujima(String zhujima){
this.zhujima=zhujima;
}
public void setdanwei(String danwei){
this.danwei=danwei;
}
public void setjiage(float jiage){
this.jiage=jiage;
}
public void sethyjiage(float hyjiage){
this.hyjiage=hyjiage;
}
}
3、制作一个标签类,在TableViewer中显示内容:
public class Spbiaoqian implements ITableLabelProvider {
@Override
public void addListener(ILabelProviderListener listener) {
}
@Override
public void dispose() {
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {
}
@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
if (element instanceof Shangpinxinxi){
Shangpinxinxi xx = (Shangpinxinxi)element;
switch(columnIndex){
case 0:
return xx.getfenlei();
case 1:
return xx.getmingcheng();
case 2:
return xx.getzhujima();
case 3:
return xx.getdanwei();
case 4:
return Float.toString(xx.getjiage());
case 5:
return Float.toString(xx.gethyjiage());
}
}
return null;
}
}
4、添加一个类,内容提供器:
public class Sprongqi implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
if(inputElement instanceof List){
return ((List<?>)inputElement).toArray();
}else{
return new Object[0];
}
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}
5、在窗口打开前,初始化:
//private TableViewer tv;
tv.setContentProvider(new Sprongqi());
tv.setLabelProvider(new Spbiaoqian());
tv.setInput((List<Shangpinxinxi>) new ArrayList<Shangpinxinxi>());
6、双击“刷新数据”,编辑widgetSelected这个方法:
Connection conn=Sheyingdatabase.getsyconnection();
@SuppressWarnings("unchecked")
List<Shangpinxinxi> splist = (List<Shangpinxinxi>) tv.getInput();
splist.clear();
try {
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from shangpinxinxi order by fenlei asc");
while(rs.next()){
Shangpinxinxi xx=new Shangpinxinxi();
xx.setfenlei(rs.getString(1));
xx.setmingcheng(rs.getString(2));
xx.setzhujima(rs.getString(3));
xx.setdanwei(rs.getString(4));
xx.setjiage(rs.getFloat(5));
xx.sethyjiage(rs.getFloat(6));
splist.add(xx);
}
tv.setInput(splist);
rs.close();
st.close();
} catch (SQLException e1) {
MessageDialog.openError(null, "错误", "系统刷新商品信息数据时出现错误!");
}
7、运行项目,点击“刷新数据”。表中数据显示在table中!