Jtalbe疑惑
我想在jtable列出的表格中更改某个单元格的内容,然后在下次重新加载时就变成新内容,该怎么做?
import java.awt.*;
import javax.swing.JButton;
import javax.swing.*;
import java.awt.event.*;
public class JtableDemo extends JApplet
{
JTable jt;
String[] tableHead={ "姓名 ", "电话 ", "年龄 "};
public void init()
{
Container cp=getContentPane();
cp.setLayout(new BorderLayout());
JButton jb1=new JButton( "change ");
final Object[][] recorder={
{ "张三 ", "139367 ", "30 "},
{ "李四 ", "139459 ", "30 "},
{ "王五 ", "601223 ", "6 "},
{ "王六 ", "6271444 ", "6 "}};
jt=new JTable(recorder,tableHead);
jt.setGridColor(Color.red);
int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane jsp=new JScrollPane(jt,v,h);
cp.add(jsp,BorderLayout.CENTER);
cp.add(jb1,BorderLayout.SOUTH);
jb1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//我想在此点击按钮后单元格中的内容就换成新内容,而且重新调用时也是新内容。
int i=jt.getEditingRow();
int j=jt.getEditingColumn();
//下面这条语句肯定不对,怎么改呢?
recorder[i][j]= jt.getAccessibleContext().getAccessibleText().getAtIndex(i,j) ;
System.out.println(i);
System.out.println(j);
System.out.println(recorder[i][j]);
}
}
);
}
}
// <applet code= "JtableDemo.java " width=400 height=400> </applet>
[解决办法]
package com.Demo;
/**
* <p> Title: </p>
*
* <p> Description: </p>
*
* <p> Copyright: Copyright (c) 2007 </p>
*
* <p> Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.awt.*;
import javax.swing.JButton;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Rectangle;
public class JtableDemo extends JFrame {
JTable jt;
String[] tableHead = { "姓名 ", "电话 ", "年龄 "};
final Object[][] recorder = { { "张三 ", "139367 ", "30 "}, { "李四 ", "139459 ",
"30 "}, { "王五 ", "601223 ", "6 "}, { "王六 ",
"6271444 ", "6 "}};
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable(recorder,tableHead);
JButton jButton1 = new JButton();
public JtableDemo() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
JtableDemo demo=new JtableDemo();
demo.setDefaultCloseOperation(demo.EXIT_ON_CLOSE);
demo.setVisible(true);
}
private void jbInit() throws Exception {
this.getContentPane().setLayout(null);
jScrollPane1.setBounds(new Rectangle(31, 36, 307, 296));
this.getContentPane().add(jScrollPane1);
this.getContentPane().add(jButton1);
jButton1.setBounds(new Rectangle(356, 88, 87, 38));
jButton1.setText( "jButton1 ");
jButton1.addActionListener(new JtableDemo_jButton1_actionAdapter(this));
jScrollPane1.getViewport().add(jTable1);
this.setSize(500,500);
this.setLocation(200,200);
}
public void jButton1_actionPerformed(ActionEvent e) {
}
}
class JtableDemo_jButton1_actionAdapter implements ActionListener {
private JtableDemo adaptee;
JtableDemo_jButton1_actionAdapter(JtableDemo adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
[解决办法]
其实什么也不用做就可以改变。
[解决办法]
数据是由TableModel维护
想保持一致就要不断的维护她
就可以了
我的模型里面有
JM1.3.1
http://1shome.ebok.cn/
[解决办法]
我认为你应该把时间用在JTABLE的数据库操作上。
你这样写死的东西作出来用处不太大吧
[解决办法]
你改过的内容没有被保存下来,只是在运行时留在内存中。关掉程序以后就没了。
找个媒介存一下你要保存的数据吧,文件,数据库都可以放。