关于JTabel的问题 如何向一个JTabel里输入数组的数 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚开始构建可以用 String[][],String[]之后想添加一条,只能吧数组中的数拿出来,一个一个加了 你使用DefaultDataModel就可以呀如定义一个数组String[] a = {"a","b","c"};然后再定义DefaultDataModel dm = new DefaultDataModel(a);JTable jt = new JTable(dm);随手写的,可能有不对的地方,没查API,应该差不多了吧! 你可以将你的数组里的数据存入到vector中,然后创建jtable的时候用 用这个new JTable(vector,vector);这个构造方法就可以了 使用DefaultDataMode类,定义一个数组String [][]num={{"1","2"},{"12","12"}...};在NEW一个DefaultDataModel ddm = new DefaultDataModel(num); JTable jtable=new JTable(ddm);还是查查API吧! //给你个完整的代码,自己对照jdk api慢慢研究吧,事先说明代码不是我写的,我也不会JAVA,省得人说我剽窃import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import javax.swing.*;import javax.swing.event.*;public class JTableDemo extends JFrame implements TableModelListener{ private JTable table; //表格 private MyTable mytable; //TableModel private JComboBox c; //班级 private JLabel label; public JTableDemo() { super("TableModelDemo"); setSize(400, 300); try { //设置系统外观 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exception e){} Container container = getContentPane(); //创建表格 mytable = new MyTable(); mytable.addTableModelListener(this); table = new JTable(mytable); //创建下拉框 c = new JComboBox(); c.addItem("03A01"); c.addItem("03A02"); c.addItem("03A03"); //设置表格第3列的单元格编辑器 table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(c)); container.add(new JScrollPane(table)); //创建标签,显示信息 label = new JLabel("", JLabel.CENTER); label.setPreferredSize(new Dimension(400, 30)); label.setFont(new Font("Serif", Font.PLAIN, 14)); container.add(label, BorderLayout.SOUTH); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //处理TableModelEvent事件 public void tableChanged(TableModelEvent event) { int row = event.getFirstRow(); String fullName = ((String)(mytable.getValueAt(row, 1))); String className =((String)(mytable.getValueAt(row, 2))); label.setText(fullName + "现在是 " + className + " 的同学"); } public static void main(String args[]) { JTableDemo application = new JTableDemo(); }}class MyTable extends AbstractTableModel{ private Object[][] data = { {"032520", "张三", "03A01", new Integer(50), new Integer(50), new Integer(50),new Integer(50 + 50 + 50)}, {"032521", "李四", "03A02", new Integer(45), new Integer(46), new Integer(48), new Integer(45 + 46 + 48)} }; private String[] header = {"学号", "姓名", "班级", "数学", "语文", "英语", "总分"}; //获取列数 public int getColumnCount() { return header.length; } //获取行数 public int getRowCount() { return data.length; } //获取列名 public String getColumnName(int col) { return header[col]; } //获取单元格对应的值 public Object getValueAt(int row, int col) { return data[row][col]; } //获取每列数据的类型 public Class getColumnClass(int cc) { return getValueAt(0, cc).getClass(); } //设置单元格为可编辑 public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } //设置单元格所对应的值, public void setValueAt(Object value, int row, int col) { if(col != 2) return; data[row][col] = value; fireTableCellUpdated(row, col); }} InputStream java 绘图GUI 问一关于类继承的问题,谢谢 JAVA技术相关书籍5折出售(共11本) Java中利用JMF编写摄像头拍照程序(转贴精华贴,求救详解!) 谁用过ReportViewer.jar?有没有这包的API使用说明? JPanel的大小控制问题!非常感谢! 麻烦帮偶看下这个简单的正则怎么不能匹配? 请问高手: 关于文件读写的问题. 如何用Java建立基于推技术的聊天室???各位高手请帮忙!!! 麻烦大虾帮忙写个实现jscrollpane和jtextarea常用功能的代码 JApplet中有没有和getAppletContext()方法功能一致的方法呢
之后想添加一条,只能吧数组中的数拿出来,一个一个加了
如定义一个数组String[] a = {"a","b","c"};然后再定义DefaultDataModel dm = new DefaultDataModel(a);JTable jt = new JTable(dm);随手写的,可能有不对的地方,没查API,应该差不多了吧!
定义一个数组String [][]num={{"1","2"},{"12","12"}...};
在NEW一个DefaultDataModel ddm = new DefaultDataModel(num);
JTable jtable=new JTable(ddm);还是查查API吧!
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import javax.swing.event.*;public class JTableDemo extends JFrame implements TableModelListener
{
private JTable table; //表格
private MyTable mytable; //TableModel
private JComboBox c; //班级
private JLabel label; public JTableDemo()
{
super("TableModelDemo");
setSize(400, 300);
try
{ //设置系统外观
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){}
Container container = getContentPane();
//创建表格
mytable = new MyTable();
mytable.addTableModelListener(this);
table = new JTable(mytable);
//创建下拉框
c = new JComboBox();
c.addItem("03A01");
c.addItem("03A02");
c.addItem("03A03");
//设置表格第3列的单元格编辑器
table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(c)); container.add(new JScrollPane(table));
//创建标签,显示信息
label = new JLabel("", JLabel.CENTER);
label.setPreferredSize(new Dimension(400, 30));
label.setFont(new Font("Serif", Font.PLAIN, 14));
container.add(label, BorderLayout.SOUTH);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//处理TableModelEvent事件
public void tableChanged(TableModelEvent event)
{
int row = event.getFirstRow();
String fullName = ((String)(mytable.getValueAt(row, 1)));
String className =((String)(mytable.getValueAt(row, 2)));
label.setText(fullName + "现在是 " + className + " 的同学");
} public static void main(String args[])
{
JTableDemo application = new JTableDemo();
}
}class MyTable extends AbstractTableModel
{
private Object[][] data =
{
{"032520", "张三", "03A01", new Integer(50), new Integer(50),
new Integer(50),new Integer(50 + 50 + 50)},
{"032521", "李四", "03A02", new Integer(45), new Integer(46),
new Integer(48), new Integer(45 + 46 + 48)}
};
private String[] header = {"学号", "姓名", "班级", "数学", "语文", "英语", "总分"};
//获取列数
public int getColumnCount()
{
return header.length;
}
//获取行数
public int getRowCount()
{
return data.length;
}
//获取列名
public String getColumnName(int col)
{
return header[col];
}
//获取单元格对应的值
public Object getValueAt(int row, int col)
{
return data[row][col];
}
//获取每列数据的类型
public Class getColumnClass(int cc)
{
return getValueAt(0, cc).getClass();
}
//设置单元格为可编辑
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return true;
}
//设置单元格所对应的值,
public void setValueAt(Object value, int row, int col)
{
if(col != 2)
return;
data[row][col] = value;
fireTableCellUpdated(row, col);
}
}