重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
while (rs.next()) {
成都创新互联公司主营北京网站建设的网络公司,主营网站建设方案,app软件开发,北京h5成都小程序开发搭建,北京网站营销推广欢迎北京等地区企业咨询
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;
}
}
这里面的writer.flush();方法是刷新的意思不知道是不是你想要的。
public
class
Io
{
public
static
void
main
(String
[]
args)throws
Exception{
File
f=new
File(args[0]);
f.createNewFile();
new
File("test1").mkdir();
//
make
new
dir
File
f2=new
File("test1"
+
File.separator
+args[0]);
f2.createNewFile();
System.out.println(f2.getName());
System.out.println("
Absolute
Path
is:
"
+
f2.getAbsolutePath());
System.out.println("
Can
Read
:?
"
+
f2.canRead());
f2.renameTo(new
File("test"
+
File.separator+
"newfile"));
Io
i=new
Io();
i.writeOneLine(args[0]+".csv","测试,ghmn,你们,\nafd,asdf,\neee");}
public
void
writeOneLine(String
name,String
line){
PrintWriter
writer
=
null;
try
{writer
=
new
PrintWriter(new
FileWriter(name,
true));
writer.println(line);
writer.flush();
}
catch
(IOException
e)
{
System.out.println("Error:
"
+
e);}
finally
{
writer.close();}
}
可以建立两个jlable分别放上不同的图片,将jlable放在jpanel上面,点击按钮后删除原来的jlabel添加新的jlabel
JPanel panel=new JPanel();
JLabel label1=new JLabel();
JLabel label2=new JLabel();
如果已经将label1添加在panel上,单击后可用以下代码:
panel.remove(label1);
panel.repaint();
panel.add(label2);
如果你要刷新的内容不需要读取数据库,那用javascript或者jquery都行了。
如果你要刷新的内容来自于数据库,那肯定是用ajax更好。如果实在不想用ajax,可以把你的div放到iframe里面,让iframe加载新的url来更新div内容。
让主界面刷新,你可以调用的主窗体的paintAll方法,
很多时候都吧,update().repaint().paintComponents()这些方法一起使用,
人家问的是swing里面的刷新frame,不是网页吧...
我没记错的话frame有刷新的方法,调用一下就可以了,你看一下API,好像是repaint()
希望能帮到你,祝你好运!