當前位置:編程學習大全網 - 編程語言 - Java中JTble表格中的數據如何逐行顯示?

Java中JTble表格中的數據如何逐行顯示?

這個可以實現。JTable的有壹個方法是getTableModel().返回提供此 JTable 所顯示數據的 TableModel.

TableModel是壹個接口,實際上返回的是DefaultTableModel類,它實現了TableModel接口。這個類中有壹個方法是void addRow(Object[] rowData)。它就是將壹行插入到JTable中。

不過JTable的setValueAt方法應該就可以實現。

樓主可以定義個壹個線程類來完成。

比如妳需要插入100行數據,可以在線程的run方法中寫壹個循環,在循環中寫兩行代碼,壹行是setValueAt,壹行是刷新JTable,然後再讓線程睡眠,這樣壹行壹行的顯示的效果就可以出來了!

或者樓主可以用進度條來打發等待的時間,就像打開netbeans的那個進度條壹樣,這個可以用JProgressBar類。樓主可以去查看壹下源代碼。如果樓主還是沒有頭緒,我幹脆就寫個例子得了!

關於組件的添加或者類似設置窗口的大小,布局管理器等我就不做解釋了!

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import javax.swing.table.*;

public class Test extends JFrame implements ActionListener

{

private JButton button1;

private JButton button2;

private JButton button3;

private DefaultTableModel model;

private JTable table;

private JProgressBar bar;

private JScrollPane scrollpane;

private JPanel panel;

public Test()

{

button1=new JButton("演示1");

button2=new JButton("演示2");

button3=new JButton("清空");

panel=new JPanel();

bar=new JProgressBar(0,100);

String[] colnames={"數據壹","數據二"};

model=new DefaultTableModel(colnames,100);

table=new JTable(model);

scrollpane=new JScrollPane(table);

panel.setLayout(new FlowLayout());

button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

panel.add(button1);

panel.add(button2);

panel.add(button3);

panel.add(bar);

this.setLayout(new GridLayout(2,1));

this.setSize(500,600);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.add(scrollpane);

this.add(panel);

}

public void actionPerformed(ActionEvent e)

{

String command=e.getActionCommand();

if(command.equals("演示1"))

{

ShowModel show=new ShowModel(true);

Thread thread=new Thread(show);

thread.start();

}

else if(command.equals("演示2"))

{

ShowModel show=new ShowModel(false);

Thread thread=new Thread(show);

thread.start();

}

else

{

String[] colnames={"數據壹","數據二"};

model=new DefaultTableModel(colnames,100);

table.setModel(model);

}

}

private class ShowModel implements Runnable

{

private boolean type;//當type為true時,則說明是“演示1”的線程,false則相反

public ShowModel(boolean type)

{

this.type=type;

}

public void run()

{

if(type)//這個就是讓線程睡眠,並且設置JTable的值

{

try{

for(int i=0;i<100;i++)

{

Test.this.table.setValueAt(String.valueOf(i),i,0);

Test.this.table.setValueAt(String.valueOf(i),i,1);

Thread.sleep(100);

}

}catch(Exception e)

{

e.printStackTrace();

}

}

else//這個就是進度條的演示

{

try{

Test.this.table.setVisible(false);

for(int i=0;i<100;i++)

{

Test.this.table.setValueAt(String.valueOf(i),i,0);

Test.this.table.setValueAt(String.valueOf(i),i,1);

Test.this.bar.setValue(i+1);

Test.this.bar.setString(String.valueOf(i+1)+"%");

Thread.sleep(40);

if(i==99)

{

Test.this.table.setVisible(true);

JOptionPane.showMessageDialog(Test.this,"OK");

Test.this.bar.setValue(0);

}

}

}catch(Exception e)

{

e.printStackTrace();

}

}

}

}

public static void main(String[] args)

{

Test test=new Test();

test.setVisible(true);

}

}

如果樓主不懂了就問我啊!!

  • 上一篇:c語言的指數符號
  • 下一篇:英語轉行編程
  • copyright 2024編程學習大全網