大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
while (rs.next()) {
创新互联建站是一家专业提供泰和企业网站建设,专注与网站建设、网站制作、H5高端网站建设、小程序制作等业务。10年已为泰和众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
rowData[i][0] = rs.getString("exam_No");
rowData[i][1] = rs.getString("student_ID");
rowData[i][2] = rs.getString("student_Name");
rowData[i][3] = rs.getString("class_NO");
rowData[i][4] = rs.getString("course_Name");
rowData[i][5] = rs.getString("result");
i++;
}
//在此处添加如下代码:
xxxxxxxxxxxx_model.fireTableDataChanged();
//或:
table.setModel(new XxxxxxxxxxTableModel(rowData,.......));
解决方法1:
如果你的表格模型扩展自AbstractTableModel,
表格数据改变后,则调用模型的fireTableDataChanged()方法;
解决方法2:
重新设置表格模型.
例如:
table.setModel(new DefaultTableModel(data,columnNames));
下面是我写的一个上例子.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableTest
{
public static void main(String args[])
{
JTableTestFrame f=new JTableTestFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class JTableTestFrame extends JFrame
{
private JTable table=null;
private ArrayTableModel atm=null;
private JButton reload=null;
private final static String[] columnNames={"Number","addend","augend","sum"};
private int start=0;
public JTableTestFrame()
{
atm=new ArrayTableModel(columnNames);
table=new JTable(atm);
reload=new JButton("Reload");
reload.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
reload();
}
});
JPanel p=new JPanel(new BorderLayout());
p.add(new JLabel("JTable Test"),BorderLayout.NORTH);
p.add(new JScrollPane(table),BorderLayout.CENTER);
p.add(reload,BorderLayout.SOUTH);
this.add(p);
this.setSize(300,300);
this.setVisible(true);
}
public void reload()
{
int rows=10;
int cols=columnNames.length;
Object[][] data=new Object[rows][cols];
for(int i=0;irows;i++)
{
start+=i;
data[i][0]=start;
data[i][1]=start+1;
data[i][2]=start+2;
data[i][3]=start*2+3;
}
atm.setData(data);
atm.fireTableDataChanged();
}
}
class ArrayTableModel extends AbstractTableModel
{
private String[] columnNames=null;
private Object[][] data=null;
public ArrayTableModel(String[] columnNames)
{
this.columnNames=columnNames;
this.data=new Object[1][columnNames.length];
}
public ArrayTableModel(Object[][] data,String[] columnNames)
{
this.data=data;
this.columnNames=columnNames;
}
public Object getValueAt(int r,int c)
{
return this.data[r][c];
}
public int getRowCount()
{
return this.data.length;
}
public int getColumnCount()
{
return this.columnNames.length;
}
public String[] getColumnNames() {
return columnNames;
}
public String getColumnName(int c)
{
return this.columnNames[c].toString();
}
public void setColumnNames(String[] columnNames) {
this.columnNames = columnNames;
}
public Object[][] getData() {
return data;
}
public void setData(Object[][] data) {
this.data = data;
}
}
NO NO NO 不是刷新工程,
你要知道你开发的时候, 你把图片上传到你的工程中, 而你在运行的时候, 其实你的文件是被myeclipse复制到另一个地方的, 所以你运行的时候不在你的工程中,但你上传的图片在你的工程中, 所以你用相对路径 肯定就找不到图片了,
但是你开发好了, 在布署的时候 运行路径和上传路径一样, 就能显示图片了,
你可以在运行的时候控制输出 当前程序运行的路径 , 你就知道你的程序运行的文件 被复制到哪里了
刷新分很多种、
前台:用js设置定时器就可以做到刷新、
后台:Timmer、Job什么的都可以做定时器、刷新数据、
Swing:我没记错的话应该是repain(g);在界面类中重写repain函数、
图片不会自动显示是不是浏览器缓存问题~?就是譬如两次请求都是同一个地址,但是如果你存储的图片已经更改,但是名字没变,这样浏览器貌似是不会重新发出请求。你可以在请求时候附加一个随机数,
或者你可以再详细描述下,你说的文件夹是在哪里的文件夹,网络上的?~还是本地?你说显示图片是在哪里显示?页面上?还是本地文件夹里面?