import
java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
// 维护表格
public class JTableDefaultTableModelTest extends JFrame{
private DefaultTableModel tableModel; // 表格模型对象
private JTable table;
private JTextField aTextField;
private JTextField bTextField;
public JTableDefaultTableModelTest()
{
super ();
setTitle( " 表格 " );
setBounds( 100 , 100 , 500 , 400 );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] columnNames = { " A " , " B " }; // 列名
String [][]tableVales = {{ " A1 " , " B1 " },{ " A2 " , " B2 " },{ " A3 " , " B3 " },{ " A4 " , " B4 " },{ " A5 " , " B5 " }}; // 数据
tableModel = new DefaultTableModel(tableVales,columnNames);
table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table); // 支持滚动
getContentPane().add(scrollPane,BorderLayout.CENTER);
// jdk1.6
// 排序:
// table.setRowSorter(new TableRowSorter(tableModel));
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 单选
table.addMouseListener( new MouseAdapter(){ // 鼠标事件
public void mouseClicked(MouseEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行索引
Object oa = tableModel.getValueAt(selectedRow, 0 );
Object ob = tableModel.getValueAt(selectedRow, 1 );
aTextField.setText(oa.toString()); // 给文本框赋值
bTextField.setText(ob.toString());
}
});
scrollPane.setViewportView(table);
final JPanel panel = new JPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
panel.add( new JLabel( " A: " ));
aTextField = new JTextField( " A4 " , 10 );
panel.add(aTextField);
panel.add( new JLabel( " B: " ));
bTextField = new JTextField( " B4 " , 10 );
panel.add(bTextField);
final JButton addButton = new JButton( " 添加 " ); // 添加按钮
addButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
String []rowValues = {aTextField.getText(),bTextField.getText()};
tableModel.addRow(rowValues); // 添加一行
int rowCount = table.getRowCount() + 1 ; // 行数加上1
aTextField.setText( " A " + rowCount);
bTextField.setText( " B " + rowCount);
}
});
panel.add(addButton);
final JButton updateButton = new JButton( " 修改 " ); // 修改按钮
updateButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行的索引
if (selectedRow != - 1 ) // 是否存在选中行
{
// 修改指定的值:
tableModel.setValueAt(aTextField.getText(), selectedRow, 0 );
tableModel.setValueAt(bTextField.getText(), selectedRow, 1 );
// table.setValueAt(arg0, arg1, arg2)
}
}
});
panel.add(updateButton);
final JButton delButton = new JButton( " 删除 " );
delButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行的索引
if (selectedRow !=- 1 ) // 存在选中行
{
tableModel.removeRow(selectedRow); // 删除行
}
}
});
panel.add(delButton);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JTableDefaultTableModelTest jTableDefaultTableModelTest = new JTableDefaultTableModelTest();
jTableDefaultTableModelTest.setVisible( true );
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
// 维护表格
public class JTableDefaultTableModelTest extends JFrame{
private DefaultTableModel tableModel; // 表格模型对象
private JTable table;
private JTextField aTextField;
private JTextField bTextField;
public JTableDefaultTableModelTest()
{
super ();
setTitle( " 表格 " );
setBounds( 100 , 100 , 500 , 400 );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] columnNames = { " A " , " B " }; // 列名
String [][]tableVales = {{ " A1 " , " B1 " },{ " A2 " , " B2 " },{ " A3 " , " B3 " },{ " A4 " , " B4 " },{ " A5 " , " B5 " }}; // 数据
tableModel = new DefaultTableModel(tableVales,columnNames);
table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table); // 支持滚动
getContentPane().add(scrollPane,BorderLayout.CENTER);
// jdk1.6
// 排序:
// table.setRowSorter(new TableRowSorter(tableModel));
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 单选
table.addMouseListener( new MouseAdapter(){ // 鼠标事件
public void mouseClicked(MouseEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行索引
Object oa = tableModel.getValueAt(selectedRow, 0 );
Object ob = tableModel.getValueAt(selectedRow, 1 );
aTextField.setText(oa.toString()); // 给文本框赋值
bTextField.setText(ob.toString());
}
});
scrollPane.setViewportView(table);
final JPanel panel = new JPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
panel.add( new JLabel( " A: " ));
aTextField = new JTextField( " A4 " , 10 );
panel.add(aTextField);
panel.add( new JLabel( " B: " ));
bTextField = new JTextField( " B4 " , 10 );
panel.add(bTextField);
final JButton addButton = new JButton( " 添加 " ); // 添加按钮
addButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
String []rowValues = {aTextField.getText(),bTextField.getText()};
tableModel.addRow(rowValues); // 添加一行
int rowCount = table.getRowCount() + 1 ; // 行数加上1
aTextField.setText( " A " + rowCount);
bTextField.setText( " B " + rowCount);
}
});
panel.add(addButton);
final JButton updateButton = new JButton( " 修改 " ); // 修改按钮
updateButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行的索引
if (selectedRow != - 1 ) // 是否存在选中行
{
// 修改指定的值:
tableModel.setValueAt(aTextField.getText(), selectedRow, 0 );
tableModel.setValueAt(bTextField.getText(), selectedRow, 1 );
// table.setValueAt(arg0, arg1, arg2)
}
}
});
panel.add(updateButton);
final JButton delButton = new JButton( " 删除 " );
delButton.addActionListener( new ActionListener(){ // 添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow(); // 获得选中行的索引
if (selectedRow !=- 1 ) // 存在选中行
{
tableModel.removeRow(selectedRow); // 删除行
}
}
});
panel.add(delButton);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JTableDefaultTableModelTest jTableDefaultTableModelTest = new JTableDefaultTableModelTest();
jTableDefaultTableModelTest.setVisible( true );
}
}