Read a data file into a JTable
The first line of the data file contains the column names. Fields are separated by the "|" character. [customers.dat]
Id|Name|City|Phone
102|Beth Reiser|New York|(212)5558725
111|Dylan Ricci|Syracuse|(315)5554486
116|Brian Gugliuzza|Mamaroneck|(914)5553817
120|Gertrude Stein|Elmsford|(914)5553476
131|Daljit Sinnot|Bohemia|(516)5559811
First we need a TableModel to define the data structure to used by the JTable. [DataFileTableModel.java]
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;public class DataFileTableModel extends AbstractTableModel {
protected Vector data;
protected Vector columnNames ;
protected String datafile;
public DataFileTableModel(String f){
datafile = f;
initVectors();
} public void initVectors() {
String aLine ;
data = new Vector();
columnNames = new Vector();
try {
FileInputStream fin = new FileInputStream(datafile);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
// extract column names
StringTokenizer st1 =
new StringTokenizer(br.readLine(), "|");
while(st1.hasMoreTokens())
columnNames.addElement(st1.nextToken());
// extract data
while ((aLine = br.readLine()) != null) {
StringTokenizer st2 =
new StringTokenizer(aLine, "|");
while(st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
}
catch (Exception e) {
e.printStackTrace();
}
} public int getRowCount() {
return data.size() / getColumnCount();
} public int getColumnCount(){
return columnNames.size();
} public String getColumnName(int columnIndex) {
String colName = ""; if (columnIndex <= getColumnCount())
colName = (String)columnNames.elementAt(columnIndex); return colName;
}
public Class getColumnClass(int columnIndex){
return String.class;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String)data"404.php3" tppabs="http://www.rgagnon.com/javadetails/.elementAt(" (rowIndex * getColumnCount()) + columnIndex);
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
return;
}
}
[DataFileTable.java]
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;public class DataFileTable extends JPanel {
public DataFileTable(String dataFilePath) {
JTable table;
DataFileTableModel model;
Font f; f = new Font("SanSerif",Font.PLAIN,24);
setFont(f);
setLayout(new BorderLayout()); model = new DataFileTableModel(dataFilePath); table = new JTable();
table.setModel(model);
table.createDefaultColumnsFromModel(); JScrollPane scrollpane = new JScrollPane(table);
add(scrollpane);
} public Dimension getPreferredSize(){
return new Dimension(400, 300);
}
public static void main(String s[]) {
JFrame frame = new JFrame("Data File Table");
DataFileTable panel;
panel = new DataFileTable("customers.dat"); frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setForeground(Color.black);
frame.setBackground(Color.lightGray);
frame.getContentPane().add(panel,"Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
frame.addWindowListener(new WindowCloser());
}
}class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent e) {
Window win = e.getWindow();
win.setVisible(false);
System.exit(0);
}
}
The first line of the data file contains the column names. Fields are separated by the "|" character. [customers.dat]
Id|Name|City|Phone
102|Beth Reiser|New York|(212)5558725
111|Dylan Ricci|Syracuse|(315)5554486
116|Brian Gugliuzza|Mamaroneck|(914)5553817
120|Gertrude Stein|Elmsford|(914)5553476
131|Daljit Sinnot|Bohemia|(516)5559811
First we need a TableModel to define the data structure to used by the JTable. [DataFileTableModel.java]
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;public class DataFileTableModel extends AbstractTableModel {
protected Vector data;
protected Vector columnNames ;
protected String datafile;
public DataFileTableModel(String f){
datafile = f;
initVectors();
} public void initVectors() {
String aLine ;
data = new Vector();
columnNames = new Vector();
try {
FileInputStream fin = new FileInputStream(datafile);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
// extract column names
StringTokenizer st1 =
new StringTokenizer(br.readLine(), "|");
while(st1.hasMoreTokens())
columnNames.addElement(st1.nextToken());
// extract data
while ((aLine = br.readLine()) != null) {
StringTokenizer st2 =
new StringTokenizer(aLine, "|");
while(st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
}
catch (Exception e) {
e.printStackTrace();
}
} public int getRowCount() {
return data.size() / getColumnCount();
} public int getColumnCount(){
return columnNames.size();
} public String getColumnName(int columnIndex) {
String colName = ""; if (columnIndex <= getColumnCount())
colName = (String)columnNames.elementAt(columnIndex); return colName;
}
public Class getColumnClass(int columnIndex){
return String.class;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String)data"404.php3" tppabs="http://www.rgagnon.com/javadetails/.elementAt(" (rowIndex * getColumnCount()) + columnIndex);
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
return;
}
}
[DataFileTable.java]
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;public class DataFileTable extends JPanel {
public DataFileTable(String dataFilePath) {
JTable table;
DataFileTableModel model;
Font f; f = new Font("SanSerif",Font.PLAIN,24);
setFont(f);
setLayout(new BorderLayout()); model = new DataFileTableModel(dataFilePath); table = new JTable();
table.setModel(model);
table.createDefaultColumnsFromModel(); JScrollPane scrollpane = new JScrollPane(table);
add(scrollpane);
} public Dimension getPreferredSize(){
return new Dimension(400, 300);
}
public static void main(String s[]) {
JFrame frame = new JFrame("Data File Table");
DataFileTable panel;
panel = new DataFileTable("customers.dat"); frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setForeground(Color.black);
frame.setBackground(Color.lightGray);
frame.getContentPane().add(panel,"Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
frame.addWindowListener(new WindowCloser());
}
}class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent e) {
Window win = e.getWindow();
win.setVisible(false);
System.exit(0);
}
}
解决方案 »
- Applet问题
- 大家为我抉择
- 好久没来问问题啦。这个好久没搞定。在读取快逸报表模板时候出错。。。。。。
- 关于main方法
- 求助:用CallableStatement执行存储过程,程序僵死情况发生如何快速捕获异常
- 内部类的作用??
- java文件类使用示例怎么不能把文件读出来呢?
- 我用Java Media FrameWork类在JApplet中写了个播放器,为什么能在JBuilder中播放视频,却不能在IE中播放?好像是在IE中就找不到那个被播放的文件.的
- win7下Android sdk中的draw9patch.bat打开或保存图片抛出异常
- java爬取图片正则问题
- 【Java--------能解决吗???】
- java 有用于图像压缩的包吗?
public Object getValueAt(int rowIndex, int columnIndex) {
return (String)data"404.php3" tppabs="http://www.rgagnon.com/javadetails/.elementAt(" (rowIndex * getColumnCount()) + columnIndex);
}
应该是public Object getValueAt(int rowIndex, int columnIndex) {
return (String)data.elementAt((rowIndex * getColumnCount()) + columnIndex);
}
http://www.google.com填
java Jtable 数据库选择搜索中文(简体)网页,太多啊!!!!!