新聞中心
java web項(xiàng)目上傳一些圖片,必須刷新文件夾才能顯示圖片,如何編寫自動(dòng)刷新代碼??
圖片不會(huì)自動(dòng)顯示是不是瀏覽器緩存問(wèn)題~?就是譬如兩次請(qǐng)求都是同一個(gè)地址,但是如果你存儲(chǔ)的圖片已經(jīng)更改,但是名字沒(méi)變,這樣瀏覽器貌似是不會(huì)重新發(fā)出請(qǐng)求。你可以在請(qǐng)求時(shí)候附加一個(gè)隨機(jī)數(shù),
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的江寧網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
或者你可以再詳細(xì)描述下,你說(shuō)的文件夾是在哪里的文件夾,網(wǎng)絡(luò)上的?~還是本地?你說(shuō)顯示圖片是在哪里顯示?頁(yè)面上?還是本地文件夾里面?
Java如何實(shí)現(xiàn)自動(dòng)刷新
while (rs.next()) {
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:
如果你的表格模型擴(kuò)展自AbstractTableModel,
表格數(shù)據(jù)改變后,則調(diào)用模型的fireTableDataChanged()方法;
解決方法2:
重新設(shè)置表格模型.
例如:
table.setModel(new DefaultTableModel(data,columnNames));
下面是我寫的一個(gè)上例子.
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;
}
}
java怎么自動(dòng)刷新項(xiàng)目
刷新分很多種、
前臺(tái):用js設(shè)置定時(shí)器就可以做到刷新、
后臺(tái):Timmer、Job什么的都可以做定時(shí)器、刷新數(shù)據(jù)、
Swing:我沒(méi)記錯(cuò)的話應(yīng)該是repain(g);在界面類中重寫repain函數(shù)、
名稱欄目:java自動(dòng)刷新代碼 java定時(shí)刷新
本文鏈接:http://www.ef60e0e.cn/article/doecsoo.html