java 表格项的删除、编辑、增加 修改版 (二)

2014-11-24 09:44:17 · 作者: · 浏览: 7
c OptSetting setting; int row; int editRow; int delRow; // static JPanel editJPanel ; JFrame disEditFrame = new JFrame(); JFrame disaddFrame = new JFrame(); Point mousePoint ; String obName; int[] delSelected ; OptAlgorithmManager manager = new OptAlgorithmManager(); List algorithmlist = OptAlgorithmManager.getAllAlgorithms(); String[] addrowData = new String[2]; JPanel durationJPanel = new JPanel(); JList rowNameList; JScrollPane addScrollPane; String rowListName; String delName; Box Editbox = Box.createVerticalBox(); Box addCenterBox = Box.createHorizontalBox(); Box addLeftBox = Box.createVerticalBox(); Box addBottomBox = Box.createVerticalBox(); JPanel addCenterJPanel = new JPanel(); //-- JPanel bfgsJPanel ,cgJPanel , dfpJPanel , lmJPanel,newSDJPanel ,newTRJPanel, pSJPanel, deJPanel,psoJPanel,splxJPanel,trJPanel; public void initPanel(){ mOptmanagerPanel = new OptmanagerPanel(); JFrame mJFrame = new JFrame(); mJFrame.setLayout(new BorderLayout()); mJFrame.add(mOptmanagerPanel.tableHeaderJPanel(),BorderLayout.NORTH); mJFrame.add(mOptmanagerPanel.tablePanel(), BorderLayout.CENTER); mJFrame.setBounds(300, 300, 300, 100); mJFrame.pack(); mJFrame.setVisible(true); mJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public JPanel tablePanel(){ mOptmanagerPanel = new OptmanagerPanel(); rowData = mOptmanagerPanel.getAlgorithmData(); model = new DefaultTableModel(rowData,columnName); tabl
e = new JTable(model); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); scrollPane = new JScrollPane(table); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); //所获取的行,在删除后会自动后移 table.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { mousePoint = e.getPoint(); System.out.println(table.rowAtPoint(mousePoint)); obName = table.getValueAt(table.rowAtPoint(mousePoint), 0).toString(); System.out.println(obName); } }); tableJPanel.setLayout(new BoxLayout(tableJPanel,BoxLayout.Y_AXIS)); tableJPanel.add(Box.createVerticalStrut(10)); tableJPanel.add(scrollPane); tableJPanel.add(Box.createVerticalStrut(10)); return tableJPanel; } public JPanel tableHeaderJPanel(){ mOptmanagerPanel = new OptmanagerPanel(); headerJPanel.setLayout(new BoxLayout(headerJPanel, BoxLayout.X_AXIS)); addIcon = new ImageIcon("Picture/add.png"); addButton.setIcon(addIcon); delIcon = new ImageIcon("Picture/remove.png"); delButton.setIcon(delIcon); editIcon = new ImageIcon("Picture/edit.png"); editButton.setIcon(editIcon); //存在问题:未选,则点击删除报错,已解决:加try catch delButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { delRow = table.rowAtPoint(mousePoint); if (delRow !=-1 ) { int delresponse = JOpti