1. java如何實現自動刷新
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:
如果你的表格模型擴展自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;i<rows;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;
}
}
2. 基於JAVA開發的GPRS衛星定位系統實時刷新用到的緩存機制最好用哪種多久自動清理一次緩存最好
每10S刷新一次,然後通過框架帶的緩存機制來添加緩存,清理緩存。可以用NObase,也可以用EHCache,hibernate也行。我覺得最好用nobase或者nutz框架。
3. java中用什麼函數對屏幕進行刷新
顯示屏刷新還是窗口刷新?如果是顯示屏刷新,你得去調用系統API,如果JVM沒有這類的封裝,可以用JNI隨意的調用系統API(比如你可以通過在本地代碼里運用MFC的一些消息機制實現屏幕重繪等等),當然最好還是用JDK本身提供的(如果有的話);如果是Swing里的這些窗口重繪的話,去查API吧,絕對有的。
4. java Jlabel文字怎麼實時更新
你這樣當然不會有效果的。你要等待的時候不卡死,只好用多線程。你連接網路一個函數,函數開始前先把result設置成「正在連接網路」,成功返回後改成其他的就行了。
5. java後台如何實現前台頁面的刷新 注意 一定是從後台觸發前台頁面的刷新
只能是後台調用線程,按一定頻率進行direct類型的跳轉,這樣前台就會刷新。
但這么做缺點很多,更好的做法是利用ajax(比如DWR)進行頁面的無刷新數據更新,因為歸根結底你是要更新頁面數據的嘛
6. java Jlist 如何實現已有內容刷新
樓主,這三個API,都可以刷新
void
setListData(Object[] listData)
根據一個對象數組構造只讀 ListModel,然後對此模型調用 setModel。
void
setListData(Vector<?> listData)
根據一個 Vector 構造只讀 ListModel,然後對此模型調用 setModel。
void
setModel(ListModel model)
設置表示列表內容或列表「值」的模型,通知屬性更改偵聽器,然後清除列表選擇。
7. java 通過socket接收服務端的數據包,解析完成之後如何顯示在頁面上(頁面需要實時刷新新傳來的數據)
你可以用推技術,把數據發送到頁面,也可以用WebSocket
// 建立WebSocket連接
var strWSPath ="ws://"+wsPath;
if ('WebSocket' in window){
objWebSocket = new WebSocket(strWSPath+"/mywebsocket.do");
}else if ('MozWebSocket' in window){
objWebSocket = new MozWebSocket(strWSPath+"/mywebsocket.do");
}else{
alert("對不起!你的瀏覽器不支持WebSocket!");
}
// 收到消息
objWebSocket.onmessage = function(evt) {
// 解析數據
var objJsonData = JSON.parse(evt.data);
var strMethodName = objJsonData.method;
var objData = objJsonData.data;
// 執行相應的業務邏輯
window[strMethodName](objData);
};