刚刚接触JAVA

A1164336592qqcom 2014-03-26 03:20:00
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.table.*;

import java.util.Vector;
public class J_Table extends JFrame{
DefaultTableColumnModel m_data;
JTable m_view;
public J_Table()
{
super("表格应用事例");
Container c=getContentPane();
c.setLayout(new FlowLayout());
int i;
JButton [] b={new JButton("添加行"),new JButton("添加列"),new JButton("删除行"),new JButton("删除列")};
for(i=0;i<4;i++)
{
c.add(b[i]);
}
m_data=new DefaultTableColumnModel();
m_view=new JTable((TableModel) m_data);
m_view.setPreferredScrollableViewportSize(new Dimension(300,150));
m_view.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane sPane=new JScrollPane(m_view);
c.add(sPane);
b[0].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mb_addRow();
System.out.println("添加一行");
}
});

b[1].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mb_addColumn();
System.out.println("添加一列");
}
});

b[2].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mb_deleteRow();
System.out.println("删除当前行");
}
});

b[3].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mb_deleteColumn();
System.out.println("删除当前列");
}
});

}

public void mb_addColumn()
{
int cNum=m_data.getColumnCount();
int rNum=((TableModel) m_data).getRowCount();
String s="列"+(cNum+1);
int c=m_view.getSelectedColumn();
System.out.println("当前列号为:"+c);
if(cNum==0||rNum==0||c<0)
{
m_data.addColumn(s);
return;
}
c++;
Vector<String> vs=mb_getColumnNames();
vs.add(c,s);
Vector data= m_data.getDataVector();
for(int i=0;i<data.size();i++)
{
Vector e=(Vector) data.get(i);
e.add(c,new String(" "));
}
m_data.setDataVector(data,vs);
}

public void mb_addRow()
{
int cNum=m_data.getColumnCount();
if(cNum==0)
mb_addColumn();
int rNum=m_data.getRowCount();
int r=mb_getRowCurrent();
System.out.println("当前行号:"+r);
m_data.insertRow(r,(Vector)null);

}


public void mb_deleteColumn()
{
int cNum=m_data.getColumnCount();
if(cNum==0)
return;
int c=m_view.getSelectedColumns();
if(c<0)
c=0;
System.out.println("当前列号:"+c);
Vector<String> vs=mb_getColumnNames();
vs.remove(c);

Vector data=m_data.getDataVector();
for(int i=0;i<data.size();i++)
{
Vector e=(Vector) data.get(i);
e.remove(c);
}

m_data.setDataVector(data,vs);
}


public void mb_deleteRow()
{
int rNum=m_data.getRowCount();
if(rNum>0)
{
int rEdit=mb_getRowCurrent();
m_data.removeRow(rEdit);
}
}

public Vector<String> mb_getColumnNames()
{
Vector<String> vs=new Vector<String>();
int cNum=m_data.getCoumnCount();
for(int i=0;i<cNum;i++)
vs.add(m_data.getColumnName(i));
return(vs);
}


public int mb_getRowCurrent()
{
int r=m_view.getSelectedRow();
if(r<0)
r=0;
return(r);
}


public static void main(String[] args) {
JFrame app=new J_Table();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(350,250);
app.setVisible(true);// TODO 自动生成的方法存根

}

}
下面显示Exception in thread "main" java.lang.Error: 无法解析的编译问题:
构造函数 JTable(DefaultTableColumnModel)未定义
没有为类型 DefaultTableColumnModel 定义方法 getRowCount()
类型 DefaultTableColumnModel 中的方法 addColumn(TableColumn)对于参数(String)不适用
没有为类型 DefaultTableColumnModel 定义方法 getDataVector()
没有为类型 DefaultTableColumnModel 定义方法 setDataVector(Vector, Vector<String>)
没有为类型 DefaultTableColumnModel 定义方法 getRowCount()
没有为类型 DefaultTableColumnModel 定义方法 insertRow(int, Vector)
类型不匹配:不能从 int[] 转换为 int
没有为类型 DefaultTableColumnModel 定义方法 getDataVector()
没有为类型 DefaultTableColumnModel 定义方法 setDataVector(Vector, Vector<String>)
没有为类型 DefaultTableColumnModel 定义方法 getRowCount()
没有为类型 DefaultTableColumnModel 定义方法 removeRow(int)
没有为类型 DefaultTableColumnModel 定义方法 getCoumnCount()
没有为类型 DefaultTableColumnModel 定义方法 getColumnName(int)

at J_Table.<init>(J_Table.java:24)
at J_Table.main(J_Table.java:157)
...全文
260 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanick 2014-04-02
  • 打赏
  • 举报
回复
完全没看懂是什么意思``
IT_small_bird 2014-03-30
  • 打赏
  • 举报
回复
看起来都头大
wangdeng620 2014-03-30
  • 打赏
  • 举报
回复
参数传错了 这个这么多代码看的眼花啊
bb0428 2014-03-28
  • 打赏
  • 举报
回复
这不像刚刚接触JAVA的人啊。。。
zhangy1111 2014-03-27
  • 打赏
  • 举报
回复
我也是刚学JAVA,希望在这里可以得到帮助!
机器学习之禅 2014-03-27
  • 打赏
  • 举报
回复
public J_Table() 这个定义 没有传入参数,而且类名是 J_Table m_view=new JTable((TableModel) m_data); 这个赋值操作的JTable()没有定义 看起来应该是构造函数的样子,但是少了_
A1164336592qqcom 2014-03-27
  • 打赏
  • 举报
回复
怎么改啊,这个是书上的例程
A1164336592qqcom 2014-03-27
  • 打赏
  • 举报
回复
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.table.*; import java.util.Vector; public class J_Table extends JFrame{ DefaultTableColumnModel m_data; JTable m_view; public J_Table() { super("表格应用事例"); Container c=getContentPane(); c.setLayout(new FlowLayout()); int i; JButton [] b={new JButton("添加行"),new JButton("添加列"),new JButton("删除行"),new JButton("删除列")}; for(i=0;i<4;i++) { c.add(b[i]); } m_data=new DefaultTableColumnModel(); m_view=new JTable(m_data);//类型不匹配:不能从 DefaultTableColumnModel 转换为 JTable m_view.setPreferredScrollableViewportSize(new Dimension(300,150)); m_view.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sPane=new JScrollPane(m_view); c.add(sPane); b[0].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mb_addRow(); System.out.println("添加一行"); } }); b[1].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mb_addColumn(); System.out.println("添加一列"); } }); b[2].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mb_deleteRow(); System.out.println("删除当前行"); } }); b[3].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mb_deleteColumn(); System.out.println("删除当前列"); } }); } public void mb_addColumn() { int cNum=m_data.getColumnCount(); int rNum=((TableModel) m_data).getRowCount(); String s="列"+(cNum+1); int c=m_view.getSelectedColumn(); System.out.println("当前列号为:"+c); if(cNum==0||rNum==0||c<0) { m_data.addColumn(s);//类型 DefaultTableColumnModel 中的方法 addColumn(TableColumn)对于参数(String)不适用 return; } c++; Vector<String> vs=mb_getColumnNames(); vs.add(c,s); Vector data= m_data.getDataVector();//没有为类型 DefaultTableColumnModel 定义方法 getDataVector() for(int i=0;i<data.size();i++) { Vector e=(Vector) data.get(i); e.add(c,new String(" ")); } m_data.setDataVector(data,vs);//没有为类型 DefaultTableColumnModel 定义方法 setDataVector(Vector, Vector<String>) } public void mb_addRow() { int cNum=m_data.getColumnCount(); if(cNum==0) mb_addColumn(); int rNum=m_data.getRowCount(); int r=mb_getRowCurrent(); System.out.println("当前行号:"+r); m_data.insertRow(r,(Vector)null); } public void mb_deleteColumn() { int cNum=m_data.getColumnCount(); if(cNum==0) return; int c=m_view.getSelectedColumns(); if(c<0) c=0; System.out.println("当前列号:"+c); Vector<String> vs=mb_getColumnNames(); vs.remove(c); Vector data=m_data.getDataVector(); for(int i=0;i<data.size();i++) { Vector e=(Vector) data.get(i); e.remove(c); } m_data.setDataVector(data,vs); } public void mb_deleteRow() { int rNum=m_data.getRowCount(); if(rNum>0) { int rEdit=mb_getRowCurrent(); m_data.removeRow(rEdit); } } public Vector<String> mb_getColumnNames() { Vector<String> vs=new Vector<String>(); int cNum=m_data.getCoumnCount(); for(int i=0;i<cNum;i++) vs.add(m_data.getColumnName(i)); return(vs); } public int mb_getRowCurrent() { int r=m_view.getSelectedRow(); if(r<0) r=0; return(r); } public static void main(String[] args) { JFrame app=new J_Table(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setSize(350,250); app.setVisible(true);// TODO 自动生成的方法存根 } }
A1164336592qqcom 2014-03-27
  • 打赏
  • 举报
回复
这个是书上给的例程
-江沐风- 2014-03-27
  • 打赏
  • 举报
回复
1.参数类型; 2.Vector我好像好长时间没用过了;
  • 打赏
  • 举报
回复
你这代码写的看不懂 好多方法是因为你的参数类型传错了 所以才会报错
  • 打赏
  • 举报
回复
你要把代码出错指出来在哪一行别人才方便看啊 这样看上去很费力
jackson所需要的所有jar jackson-all-1.6.2.jar jackson-core-asl-1.6.2.jar jackson-mapper-asl-1.6.2.jar jakarta-oro.jar 1. 背景 目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: http://wiki.fasterxml.com/JacksonJavaDocs JacksonInFiveMinutes: http://wiki.fasterxml.com/JacksonInFiveMinutes 本文主要内容译自JacksonInFiveMinutes,增加了部分示例,转载请注明出处。 受java平台上各种处理xml的类库(StAX, JAXB等)启发,Jackson提供一种处理json的java类库。Jackson的目标是为开发者提供快速、准确、轻量级和用起来最爽的json处理类库。本文将概括介绍Jackson的主要功能和相关功能的使用示例。 2. 使用方式 Jackson提供三种可选的json处理方式: 1) Streaming API 又称Incremental parsing/generation, 受StAX API启发,以非关联递增方式读写json内容。 通过 org.codehaus.jackson.JsonParser读取,通过org.codehaus.jackson.JsonGenerator写入。 2) Tree Model 通过基于内存的树形结构来描述json数据,和 XML DOM类似。通过org.codehaus.jackson.map.ObjectMapper构建树,树由JsonNode节点组成。 3) Data Binding 基于属性访问或注解的方式将json和POJO对象互相转换, 受JAXB基于注解的处理方式启发。通过org.codehaus.jackson.map.ObjectMapper读写json数据。它包含两种类型: 3.1 Simple Data Binding 用于json和Java Maps, Lists, Strings, Numbers, Booleans and nulls的相互转换。 3.2 Full Data Binding 用于json和Java Bean的相互转换。 下面从使用的角度上比较三种处理方式: Streaming API 执行效率最高,读写速度最快,另外两种方式都基于它实现; Tree Model 是最灵活的; Data Binding 通常是最方便使用的;

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧