日期的例子:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Insets;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.text.DateFormat;import java.text.ParseException;import java.util.Calendar;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JRootPane;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.border.LineBorder;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.JTableHeader;import javax.swing.table.TableCellRenderer;public class MDateField extends JPanel {private JTextField textField;public MDateField() {super();final FlowLayout flowLayout = new FlowLayout();flowLayout.setHgap(0);setLayout(flowLayout);textField = new JTextField();textField.setColumns(12);add(textField);final JButton button = new JButton();button.setText("...");button.setMargin(new Insets(0, 4, 0, 4));button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Dimension preferredSize = textField.getPreferredSize();Point locationOnScreen = textField.getLocationOnScreen();int x = (int) locationOnScreen.getX();int y = (int) (locationOnScreen.getY() + preferredSize.getHeight());int width = 310;int height = 187;JRootPane rootPane = textField.getRootPane();Point rootPaneLocationOnScreen = rootPane.getLocationOnScreen();if (height > rootPaneLocationOnScreen.getY()+ rootPane.getHeight() - y) {y = (int) (locationOnScreen.getY() - height);}ChooseDateDialog dialog = new ChooseDateDialog();dialog.setBounds(x, y, width, height);dialog.setVisible(true);}});add(button);//}class ChooseDateDialog extends JDialog {private int year;private int month;private int day;private int[] daysOfMonth = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31 };private JTextField yTextField;private JTextField mTextField;private DefaultTableModel tableModel;public ChooseDateDialog() {super();setModal(true);setUndecorated(true);setBounds(100, 100, 310, 153);Calendar today = Calendar.getInstance();year = today.get(Calendar.YEAR);month = today.get(Calendar.MONTH) + 1;day = today.get(Calendar.DAY_OF_MONTH);if (year % 4 == 0) {if (year % 100 != 0 || year % 400 == 0)daysOfMonth[2] = 29;elsedaysOfMonth[2] = 28;} else {daysOfMonth[2] = 28;}final JPanel panel = new JPanel();panel.setLayout(new BorderLayout());panel.setBorder(new LineBorder(Color.black, 1, false)); getContentPane().add(panel, BorderLayout.CENTER);final JPanel buttonPanel = new JPanel();panel.add(buttonPanel, BorderLayout.NORTH);final JButton pyButton = new JButton();pyButton.setText("<<");pyButton.setToolTipText("上一年");pyButton.setMargin(new Insets(0, 10, 0, 10)); pyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { yTextField.setText(--year + "");initTableModel();}});buttonPanel.add(pyButton);final JButton pmButton = new JButton(); pmButton.setText("<");pmButton.setToolTipText("上一月");pmButton.setMargin(new Insets(0, 12, 0, 12)); pmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {month--;if (month < 1) {month = 12;yTextField.setText(--year + "");}mTextField.setText(month + "");initTableModel();}});buttonPanel.add(pmButton);yTextField = new JTextField();yTextField.setColumns(4);yTextField.setEditable(false);yTextField.setHorizontalAlignment(JTextField.CENTER); yTextField.setText(year + "");buttonPanel.add(yTextField);final JLabel yLabel = new JLabel();yLabel.setText("年");buttonPanel.add(yLabel);mTextField = new JTextField();mTextField.setColumns(2);mTextField.setEditable(false);mTextField.setHorizontalAlignment(JTextField.CENTER); mTextField.setText(month + "");buttonPanel.add(mTextField);final JLabel mLabel = new JLabel();mLabel.setText("月");buttonPanel.add(mLabel);final JButton nmButton = new JButton();nmButton.setText(">");nmButton.setToolTipText("下一月");nmButton.setMargin(new Insets(0, 12, 0, 12)); nmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { month++;if (month > 12) {month = 1;yTextField.setText(++year + "");}mTextField.setText(month + "");initTableModel();}});buttonPanel.add(nmButton);final JButton nyButton = new JButton();nyButton.setText(">>");nyButton.setToolTipText("下一年");nyButton.setMargin(new Insets(0, 12, 0, 12));nyButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {yTextField.setText(++year + "");initTableModel();}});buttonPanel.add(nyButton);final JScrollPane scrollPane = new JScrollPane();panel.add(scrollPane, BorderLayout.CENTER);tableModel = new DefaultTableModel(6, 7);String[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五","星期六" };tableModel.setColumnIdentifiers(columnNames);initTableModel();final JTable table = new MTable(tableModel);table.setRowSelectionAllowed(false);table.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {String dayS = table.getValueAt(table.getSelectedRow(),table.getSelectedColumn()).toString();if (!dayS.startsWith("[")) {day = Integer.valueOf(dayS);textField.setText(getSelectedDate());dispose();}}});scrollPane.setViewportView(table);final JLabel label = new JLabel();label.setText(" ");panel.add(label, BorderLayout.WEST);final JLabel label_1 = new JLabel();label_1.setText(" ");panel.add(label_1, BorderLayout.EAST);final JPanel todayPanel = new JPanel();panel.add(todayPanel, BorderLayout.SOUTH);final JLabel label_2 = new JLabel();label_2.setText("今天:" + year + "-" + month + "-" + day + " ");todayPanel.add(label_2);final JButton button = new JButton();button.setText("...");button.setMargin(new Insets(0, 12, 0, 12));button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Calendar today = Calendar.getInstance();year = today.get(Calendar.YEAR);month = today.get(Calendar.MONTH) + 1;day = today.get(Calendar.DAY_OF_MONTH);if (year % 4 == 0) {if (year % 100 != 0 || year % 400 == 0)daysOfMonth[2] = 29;elsedaysOfMonth[2] = 28;} else {daysOfMonth[2] = 28;}yTextField.setText(year + "");mTextField.setText(month + "");initTableModel();}});todayPanel.add(button);}private void initTableModel() {DateFormat dateFormat = DateFormat.getDateInstance();try {dateFormat.parse(year + "-" + month + "-" + 1);} catch (ParseException e) {e.printStackTrace();}Calendar theDay = dateFormat.getCalendar();int dayOfWeek = theDay.get(Calendar.DAY_OF_WEEK);for (int col = 0; col < dayOfWeek - 1; col++) {int days = ((month - 1) < 1 ? 31 : daysOfMonth[month - 1]);int day = days - ((dayOfWeek - 1) - 1 - col);tableModel.setValueAt("[ " + day + " ]", 0, col);}int day = 1;for (int col = dayOfWeek - 1; col < 7; col++) {tableModel.setValueAt(day++, 0, col);}String s = "";String e = "";for (int row = 1; row < 6; row++) {for (int col = 0; col < 7; col++) {if (day > daysOfMonth[month]) {s = "[ ";e = " ]";day = 1;}tableModel.setValueAt(s + day++ + e, row, col);}}}public String getSelectedDate() {return year + "-" + month + "-" + day;}}class MTable extends JTable {public MTable() {super();}public MTable(DefaultTableModel tableModel) {super(tableModel);}// 表格列名信息@Overridepublic JTableHeader getTableHeader() {// 获得表格头对象JTableHeader tableHeader = super.getTableHeader();tableHeader.setReorderingAllowed(false);// 设置表格列不可重排// 获得表格头的单元格对象DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) tableHeader.getDefaultRenderer();// 设置单元格内容(即列名)居中显示defaultRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);return tableHeader;}// 表格列值居中显示@Overridepublic TableCellRenderer getDefaultRenderer(Class<?> columnClass) {// 获得除表格头部分的单元格对象DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) super.getDefaultRenderer(columnClass);// 设置单元格内容居中显示defaultRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);return defaultRenderer;}// 表格不可编辑@Overridepublic boolean isCellEditable(int row, int column) {return false;}// 用来设置表格的选中行@Overridepublic void setRowSelectionInterval(int fromRow, int toRow) {// 重构父类的方法super.setRowSelectionInterval(fromRow, toRow);}// 用来设置表格的唯一选中行public void setRowSelectionInterval(int row) {// 通过重载实现自己的方法setRowSelectionInterval(row, row);}}}调用日期:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Answer_2108 extends JFrame {/*** Launch the application** @param args*/public static void main(String args[]) {try {Answer_2108 frame = new Answer_2108();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}/*** Create the frame*/public Answer_2108() {super();setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel topPanel = new JPanel();getContentPane().add(topPanel, BorderLayout.NORTH);final JLabel topLabel = new JLabel();topLabel.setText("日期:");topPanel.add(topLabel);final MDateField topTreeComboBox = new MDateField();topPanel.add(topTreeComboBox);final JPanel bottomPanel = new JPanel();getContentPane().add(bottomPanel, BorderLayout.SOUTH);final JLabel bottomLabel = new JLabel();bottomLabel.setText("日期:");bottomPanel.add(bottomLabel);final MDateField bottomTreeComboBox = new MDateField();bottomPanel.add(bottomTreeComboBox);final JLabel label = new JLabel();label.setText("请选择日期:");getContentPane().add(label, BorderLayout.CENTER);//}}结果:1.表格的例子:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;public class ExampleFrame_01 extends JFrame {public static void main(String args[]) {ExampleFrame_01 frame = new ExampleFrame_01();frame.setVisible(true);}public ExampleFrame_01() {super();setTitle("创建可以滚动的表格");setBounds(100, 100, 240, 150);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" },{ "A3", "B3" }, { "A4", "B4" }, { "A5", "B5" } };// 定义表格数据数组JTable table = new JTable(tableValues, columnNames);// 创建指定表格列名和表格数据的表格JScrollPane scrollPane = new JScrollPane(table);// 创建显示表格的滚动面板getContentPane().add(scrollPane, BorderLayout.CENTER);// 将滚动面板添加到边界布局的中间//}}结果:表格例子2:import java.awt.BorderLayout;import java.util.Vector;import javax.swing.JFrame;public class Answer_2109 extends JFrame {public static void main(String args[]) {try {Answer_2109 frame = new Answer_2109();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}public Answer_2109() {super();setTitle("提供行标题栏的表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Vector columnNameV = new Vector();columnNameV.add("日期");columnNameV.add("营业额");// 添加一个日营业额列for (int i = 1; i < 21; i++) {columnNameV.add("商品" + i);}Vector tableValueV = new V ector();for (int row = 1; row < 31; row++) {Vector rowV = new V ector();rowV.add(row);int sum = 0;// 日营业额for (int col = 0; col < 20; col++) {int value = (int) (Math.random() * 1000);rowV.add(value);sum += value;// 累计日营业额}rowV.insertElementAt(sum, 1);// 插入日营业额数据tableValueV.add(rowV);}final MFixedColumnTable panel = new MFixedColumnTable(columnNameV, tableValueV, 2);// 修改固定列数量getContentPane().add(panel, BorderLayout.CENTER);//}}结果:表格例子3:import java.awt.BorderLayout;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JTable;import javax.swing.table.JTableHeader;public class ExampleFrame_02 extends JFrame {public static void main(String args[]) {ExampleFrame_02 frame = new ExampleFrame_02();frame.setVisible(true);}public ExampleFrame_02() {super();setTitle("创建不可滚动的表格");setBounds(100, 100, 240, 150);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Vector columnNameV = new Vector();// 定义表格列名向量columnNameV.add("A");// 添加列名columnNameV.add("B");// 添加列名Vector tableValueV = new V ector();// 定义表格数据向量for (int row = 1; row < 6; row++) {Vector rowV = new V ector();// 定义表格行向量rowV.add("A" + row);// 添加单元格数据rowV.add("B" + row);// 添加单元格数据tableValueV.add(rowV);// 将表格行向量添加到表格数据向量中}JTable table = new JTable(tableValueV, columnNameV);// 创建指定表格列名和表格数据的表格getContentPane().add(table, BorderLayout.CENTER);// 将表格添加到边界布局的中间JTableHeader tableHeader = table.getTableHeader();// 获得表格头对象getContentPane().add(tableHeader, BorderLayout.NORTH);// 将表格头添加到边界布局的上方//}}结果:表格例子:import java.awt.BorderLayout;import java.awt.Color;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ListSelectionModel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.JTableHeader;import javax.swing.table.TableCellRenderer;public class ExampleFrame_03 extends JFrame {public static void main(String args[]) {ExampleFrame_03 frame = new ExampleFrame_03();frame.setVisible(true);}public ExampleFrame_03() {super();setTitle("定义表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B", "C", "D", "E", "F", "G" };Vector columnNameV = new Vector();for (int column = 0; column < columnNames.length; column++) {columnNameV.add(columnNames[column]);}Vector tableValueV = new V ector();for (int row = 1; row < 21; row++) {Vector rowV = new V ector();for (int column = 0; column < columnNames.length; column++) {rowV.add(columnNames[column] + row);}tableValueV.add(rowV);}JTable table = new MTable(tableValueV, columnNameV);table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);// 关闭表格列的自动调整功能table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 选择模式为单选table.setSelectionBackground(Color.YELLOW);// 被选择行的背景色为黄色table.setSelectionForeground(Color.RED);// 被选择行的前景色(文字颜色)为红色table.setRowHeight(30);// 表格的行高为30像素scrollPane.setViewportView(table);//}private class MTable extends JTable {// 实现自己的表格类public MTable(Vector rowData, Vector columnNames) {super(rowData, columnNames);}// 定义表格头@Overridepublic JTableHeader getTableHeader() {JTableHeader tableHeader = super.getTableHeader();// 获得表格头对象tableHeader.setReorderingAllowed(false);// 设置表格列不可重排DefaultTableCellRenderer hr = (DefaultTableCellRenderer) tableHeader.getDefaultRenderer(); // 获得表格头的单元格对象hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 设置列名居中显示return tableHeader;}// 定义单元格@Overridepublic TableCellRenderer getDefaultRenderer(Class<?> columnClass) {DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super.getDefaultRenderer(columnClass); // 获得表格的单元格对象cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); // 设置单元格内容居中显示return cr;}// 表格不可编辑@Overridepublic boolean isCellEditable(int row, int column) {return false;}}}结果:表格例子:import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;public class ExampleFrame_04 extends JFrame {private JTable table;public static void main(String args[]) {ExampleFrame_04 frame = new ExampleFrame_04();frame.setVisible(true);}public ExampleFrame_04() {super();setTitle("操纵表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B", "C", "D", "E", "F", "G" };Vector columnNameV = new Vector();for (int column = 0; column < columnNames.length; column++) { columnNameV.add(columnNames[column]);}Vector tableValueV = new Vector();for (int row = 1; row < 21; row++) {Vector rowV = new V ector();for (int column = 0; column < columnNames.length; column++) { rowV.add(columnNames[column] + row);}tableValueV.add(rowV);}table = new JTable(tableValueV, columnNameV);table.setRowSelectionInterval(1, 3);// 设置选中行table.addRowSelectionInterval(5, 5);// 添加选中行scrollPane.setViewportView(table);JPanel buttonPanel = new JPanel();getContentPane().add(buttonPanel, BorderLayout.SOUTH);JButton selectAllButton = new JButton("全部选择");selectAllButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {table.selectAll();// 选中所有行}});buttonPanel.add(selectAllButton);JButton clearSelectionButton = new JButton("取消选择");clearSelectionButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {table.clearSelection();// 取消所有选中行的选择状态}});buttonPanel.add(clearSelectionButton);//System.out.println("表格共有" + table.getRowCount() + "行"+ table.getColumnCount() + "列");System.out.println("共有" + table.getSelectedRowCount() + "行被选中");System.out.println("第3行的选择状态为:" + table.isRowSelected(2));System.out.println("第5行的选择状态为:" + table.isRowSelected(4));System.out.println("被选中的第一行的索引是:" + table.getSelectedRow());int[] selectedRows = table.getSelectedRows();// 获得所有被选中行的索引System.out.print("所有被选中行的索引是:");for (int row = 0; row < selectedRows.length; row++) {System.out.print(selectedRows[row] + " ");}System.out.println();System.out.println("列移动前第2列的名称是:" + table.getColumnName(1));System.out.println("列移动前第2行第2列的值是:" + table.getValueAt(1, 1));table.moveColumn(1, 5);// 将位于索引1的列移动到索引5处System.out.println("列移动后第2列的名称是:" + table.getColumnName(1));System.out.println("列移动后第2行第2列的值是:" + table.getValueAt(1, 1));}}结果:表格例子:import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableRowSorter;public class ExampleFrame_05 extends JFrame {public static void main(String args[]) {ExampleFrame_05 frame = new ExampleFrame_05();frame.setVisible(true);}public ExampleFrame_05() {super();setTitle("表格模型与表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" },{ "A3", "B3" } };// 定义表格数据数组DefaultTableModel tableModel = new DefaultTableModel(tableValues,columnNames);// 创建指定表格列名和表格数据的表格模型JTable table = new JTable(tableModel);// 创建指定表格模型的表格table.setRowSorter(new TableRowSorter(tableModel));// 设置表格的排序器scrollPane.setViewportView(table);//}}结果:表格例子: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;import javax.swing.table.TableRowSorter;public class ExampleFrame_06 extends JFrame {private DefaultTableModel tableModel;// 定义表格模型对象private JTable table;// 定义表格对象private JTextField aTextField;private JTextField bTextField;public static void main(String args[]) {ExampleFrame_06 frame = new ExampleFrame_06();frame.setVisible(true);}public ExampleFrame_06() {super();setTitle("维护表格模型");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" }, { "A3", "B3" } };// 定义表格数据数组tableModel = new DefaultTableModel(tableValues, columnNames);// 创建指定表格列名和表格数据的表格模型table = new JTable(tableModel);// 创建指定表格模型的表格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;aTextField.setText("A" + rowCount);bTextField.setText("B" + rowCount);}});panel.add(addButton);final JButton updButton = new JButton("修改");updButton.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);// 修改表格模型当中的指定值}}});panel.add(updButton);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);//}}结果。