TableModel model = new DefaultTableModel(rows, columns); JTable table = new JTable(model); RowSorter sorter = new TableRowSorter(model); table.setRowSorter(sorter); |
import javax.swing.*; import javax.swing.table.*; import java.awt.*; public class TestSortedTable { public static void main(String args[]) { JFrame frame = new JFrame("JTable的排序測(cè)試"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 表格中顯示的數(shù)據(jù) Object rows[][] = { { "王明", "中國(guó)", 44 }, { "姚明", "中國(guó)", 25 }, { "趙子龍", "西蜀", 1234 }, { "曹操", "北魏", 2112 }, { "Bill Gates", "美國(guó)", 45 }, { "Mike", "英國(guó)", 33 } }; String columns[] = { "姓名", "國(guó)籍", "年齡" }; TableModel model = new DefaultTableModel(rows, columns); JTable table = new JTable(model); RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); table.setRowSorter(sorter); JScrollPane pane = new JScrollPane(table); frame.add(pane, BorderLayout.CENTER); frame.setSize(300, 150); frame.setVisible(true); } } |
![]() 圖1 按"姓名"升序顯示 ![]() 圖2 按"姓名"降序顯示 |
![]() 圖3 按年齡降序顯示 |
TableModel model = new DefaultTableModel(rows, columns) { public Class getColumnClass(int column) { Class returnValue; if ((column >= 0) && (column < getColumnCount())) { returnValue = getValueAt(0, column).getClass(); } else { returnValue = Object.class; } return returnValue; } }; |
![]() 圖4 按數(shù)值類(lèi)型進(jìn)行排序 |
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String text = filterText.getText(); if (text.length() == 0) { sorter.setRowFilter(null); } else { sorter.setRowFilter(RowFilter.regexFilter(text)); } } }); |
import javax.swing.*; import javax.swing.table.*; import java.awt.*; import java.awt.event.*; public class TestFilter { public static void main(String args[]) { JFrame frame = new JFrame("JTable的過(guò)濾測(cè)試"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object rows[][] = { { "王明", "中國(guó)", 44 }, { "姚明", "中國(guó)", 25 }, { "趙子龍", "西蜀", 1234 }, { "曹操", "北魏", 2112 }, { "Bill Gates", "美國(guó)", 45 }, { "Mike", "英國(guó)", 33 } }; String columns[] = { "姓名", "國(guó)籍", "年齡" }; TableModel model = new DefaultTableModel(rows, columns) { public Class getColumnClass(int column) { Class returnValue; if ((column >= 0) && (column < getColumnCount())) { returnValue = getValueAt(0, column).getClass(); } else { returnValue = Object.class; } return returnValue; } }; final JTable table = new JTable(model); final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); table.setRowSorter(sorter); JScrollPane pane = new JScrollPane(table); frame.add(pane, BorderLayout.CENTER); JPanel panel = new JPanel(new BorderLayout()); JLabel label = new JLabel("過(guò)濾"); panel.add(label, BorderLayout.WEST); final JTextField filterText = new JTextField(""); panel.add(filterText, BorderLayout.CENTER); frame.add(panel, BorderLayout.NORTH); JButton button = new JButton("過(guò)濾"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String text = filterText.getText(); if (text.length() == 0) { sorter.setRowFilter(null); } else { sorter.setRowFilter(RowFilter.regexFilter(text)); } } }); frame.add(button, BorderLayout.SOUTH); frame.setSize(300, 250); frame.setVisible(true); } } |
![]() 圖 5 |
·Java初學(xué)者專(zhuān)區(qū) | ·Java高級(jí)技術(shù) | ||
·Java圖像與多媒體 | ·Java網(wǎng)絡(luò)編程 | ||
·Eclipse | ·Hibernate | ||
·Spring | ·Struts | ||
·Java設(shè)計(jì)模式 | ·EJB開(kāi)發(fā) |
聯(lián)系客服