永发信息网

在netbeans里如何使用表格

答案:1  悬赏:70  手机版
解决时间 2021-02-05 05:15
在netbeans里如何使用表格
最佳答案
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);
}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
龙血树多长时间浇水
下列不符合甲状腺危象表现的是A.高热达39℃以
我是红米手机,每次按电源键挂电话,怎么设置
cn代表什么计量单位?
倦目的意思是什么啊?知道的请说下!
提供上门做美容上门服务做美容美体如何去推广
中宁享源宾馆地址在什么地方,想过去办事
【较量无声】较量无声观后感谁能帮我写下《较
广东农信澄海农村信用社协和信用分社在哪里啊
求一本科幻小说的名字,好像是说主角被扔到一
精神残疾人员可以提前退休吗?
中宁杞源商务宾馆地址在哪,我要去那里办事
管城回族区郑州汪垌饭店地址在哪里啊
在txtBox中填写 折扣,范围是 0到10之间,保
准拟的意思是什么啊?知道的请说下!
推荐资讯
优速广告地址在哪,我要去那里办事
南京市雨花台区婚姻登记处地址有知道的么?有
八里庙村这个地址在什么地方,我要处理点事
和一个男生是关系不错的好朋友,但是最近他开
固态硬盘买回来就直接装上 设置启动项安装系
上街路怎么去啊,有知道地址的么
惠氏奶粉1段,二段怎么兑水冲调
魔兽世界7.0能开出橙装的是什么箱子叫什么
唐人网络会所地址在什么地方,想过去办事
北邮通信工程分数线
广东亚太不锈钢制品公司地址在什么地方,想过
离婚后,父母对于子女仍有抚养和教育的权利和
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?