📄 exercise24_13chartcontroller.java
字号:
import javax.swing.table.*;import java.util.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;public class Exercise24_13ChartController extends javax.swing.JPanel implements ActionListener { // Table selection model DefaultListSelectionModel listSelectionModel = new DefaultListSelectionModel(); /** Creates new form Exercise24_13ChartController */ public Exercise24_13ChartController() { initComponents(); listSelectionModel.addListSelectionListener( new javax.swing.event.ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { listSelectionModel_valueChanged(e); } }); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents tableModel = new MyTableModel(); jPanel1 = new javax.swing.JPanel(); jbtInsert = new javax.swing.JButton(); jbtDelete = new javax.swing.JButton(); jbtUpdate = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); setLayout(new java.awt.BorderLayout()); jbtInsert.setText("Insert"); jbtInsert.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtInsertActionPerformed(evt); } }); jPanel1.add(jbtInsert); jbtDelete.setText("Delete"); jbtDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtDeleteActionPerformed(evt); } }); jPanel1.add(jbtDelete); jbtUpdate.setText("Update"); jbtUpdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtUpdateActionPerformed(evt); } }); jPanel1.add(jbtUpdate); add(jPanel1, java.awt.BorderLayout.NORTH); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { } )); jTable1.setModel(tableModel); jTable1.setSelectionModel(listSelectionModel); jScrollPane1.setViewportView(jTable1); add(jScrollPane1, java.awt.BorderLayout.CENTER); }//GEN-END:initComponents private void jbtUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtUpdateActionPerformed try { // Get the current row this.tableModelToChartModel(); } catch (Exception ex) { ex.printStackTrace(); } }//GEN-LAST:event_jbtUpdateActionPerformed private void jbtDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtDeleteActionPerformed deleteRow(); }//GEN-LAST:event_jbtDeleteActionPerformed private void tableModelToChartModel() { // Notify the change to the chart model int rowCount = tableModel.getRowCount(); String[] dataName = new String[rowCount]; double[] data = new double[rowCount]; for (int i=0; i<rowCount; i++) { dataName[i] = (String)(tableModel.getValueAt(i, 0)); data[i] = ((Double)(tableModel.getValueAt(i, 1))).doubleValue(); } this.getChartModel().setChartData(dataName, data); } private void deleteRow() { // Remove the row in the table tableModel.removeRow( listSelectionModel.getLeadSelectionIndex()); // Notify the change to the circle model int rowCount = tableModel.getRowCount(); tableModelToChartModel(); } /**Handle the selection in the table*/ void listSelectionModel_valueChanged(ListSelectionEvent e) { int selectedRow = jTable1.getSelectedRow(); } public void setChartModel(Exercise21_6ChartModel newChartModel) { chartModel = newChartModel; chartModelToTableModel(); chartModel.addActionListener(this); } private void chartModelToTableModel() { String[] dataName = chartModel.getDataName(); double[] data = chartModel.getData(); Object[][] rows = new Object[dataName.length][2]; for (int i=0; i<dataName.length; i++) { rows[i][0] = dataName[i]; rows[i][1] = new Double(data[i]); } Object[] columnHeader = {"DataName", "Data"}; tableModel.setDataVector(rows, columnHeader); } public Exercise21_6ChartModel getChartModel() { return chartModel; } private void jbtInsertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtInsertActionPerformed tableModel.insertRow(listSelectionModel.getLeadSelectionIndex(), new Object[] {"", new Double(0)}); }//GEN-LAST:event_jbtInsertActionPerformed public void actionPerformed(ActionEvent e) { /**@todo: Implement this java.awt.event.ActionListener method*/ chartModelToTableModel(); repaint(); } // Variables declaration - do not modify//GEN-BEGIN:variables private MyTableModel tableModel; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JButton jbtUpdate; private javax.swing.JButton jbtInsert; private javax.swing.JButton jbtDelete; // End of variables declaration//GEN-END:variables /** Holds value of property chartModel. */ private Exercise21_6ChartModel chartModel;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -