reportquerydialog.java
来自「优秀的打印控件全源代码,类似水晶表的设计器!」· Java 代码 · 共 1,003 行 · 第 1/3 页
JAVA
1,003 行
jPanel2.add( columnsScrollPane, java.awt.BorderLayout.CENTER ); jPanel2.revalidate(); javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)jTableFields.getModel(); dtm.getDataVector().clear(); for(int i=0; i<cols.size(); i++) { Object [] row = (Object[])cols.get(i); dtm.addRow( row ); } // Select all the fields so the new user does not get confused, when // they press OK. As only the selected fields are actually saved to the // report jTableFields.selectAll(); okButton.setEnabled( true ); } /** * Replace the columns list with a label that contains the reason why * columns cannot be loaded. * * @param msg The error message to display, can be in HTML. */ private void setColumnsError( final String msg ) { columnsErrorMsgLabel.setText( msg ); jPanel2.remove( columnsScrollPane ); jPanel2.add( columnsErrorScrollPane, java.awt.BorderLayout.CENTER ); jPanel2.revalidate(); columnsErrorMsgLabel.repaint(); okButton.setEnabled(false); } /** 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 java.awt.GridBagConstraints gridBagConstraints; jSplitPane1 = new javax.swing.JSplitPane(); jPanel1 = new javax.swing.JPanel(); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanelSQL = new javax.swing.JPanel(); jRSQLExpressionArea1 = new it.businesslogic.ireport.gui.JRSQLExpressionArea(); jPanel7 = new javax.swing.JPanel(); automaticlyReadFieldsCheckBox = new javax.swing.JCheckBox(); readFieldsButton = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); jTextFieldBeanClass = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jButtonReadBeanAttributes = new javax.swing.JButton(); jButtonReadBeanAttributes1 = new javax.swing.JButton(); jPanel6 = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); columnsScrollPane = new javax.swing.JScrollPane(); jTableFields = new javax.swing.JTable(); jPanel3 = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); jPanel9 = new javax.swing.JPanel(); columnsErrorScrollPane = new javax.swing.JScrollPane(); columnsErrorMsgLabel = new javax.swing.JLabel(); setTitle("Report query"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); jSplitPane1.setResizeWeight(0.4); jPanel1.setLayout(new java.awt.BorderLayout()); jPanel1.setMinimumSize(new java.awt.Dimension(10, 100)); jPanel1.setPreferredSize(new java.awt.Dimension(10, 350)); jTabbedPane1.setPreferredSize(new java.awt.Dimension(154, 350)); jTabbedPane1.setMinimumSize(new java.awt.Dimension(154, 350)); jPanelSQL.setLayout(new java.awt.BorderLayout()); jPanelSQL.setPreferredSize(new java.awt.Dimension(1, 350)); jPanelSQL.setMinimumSize(new java.awt.Dimension(1, 100)); jRSQLExpressionArea1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED)); jRSQLExpressionArea1.setPreferredSize(new java.awt.Dimension(661, 340)); jRSQLExpressionArea1.setMinimumSize(new java.awt.Dimension(661, 200)); jPanelSQL.add(jRSQLExpressionArea1, java.awt.BorderLayout.CENTER); jPanel7.setLayout(new java.awt.GridBagLayout()); automaticlyReadFieldsCheckBox.setText("Automatically Retrieve Fields"); automaticlyReadFieldsCheckBox.setSelected(true); automaticlyReadFieldsCheckBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { automaticlyReadFieldsCheckBoxActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 5, 2, 0); jPanel7.add(automaticlyReadFieldsCheckBox, gridBagConstraints); readFieldsButton.setText("Read Fields"); readFieldsButton.setEnabled(false); readFieldsButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { readFieldsButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(2, 10, 2, 0); jPanel7.add(readFieldsButton, gridBagConstraints); jPanelSQL.add(jPanel7, java.awt.BorderLayout.SOUTH); jTabbedPane1.addTab("Report SQL query ", jPanelSQL); jPanel5.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3); jPanel5.add(jTextFieldBeanClass, gridBagConstraints); jLabel2.setText("Class name"); jLabel2.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 5, 3); jPanel5.add(jLabel2, gridBagConstraints); jButtonReadBeanAttributes.setText("Read javabeans attributes"); jButtonReadBeanAttributes.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonReadBeanAttributesActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3); jPanel5.add(jButtonReadBeanAttributes, gridBagConstraints); jButtonReadBeanAttributes1.setText("Read extended javabeans attributes"); jButtonReadBeanAttributes1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonReadBeanAttributes1ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3); jPanel5.add(jButtonReadBeanAttributes1, gridBagConstraints); jTabbedPane1.addTab("JavaBean Datasource", jPanel5); jTabbedPane1.addTab("Custom Datasource", jPanel6); jPanel1.add(jTabbedPane1, java.awt.BorderLayout.CENTER); jSplitPane1.setTopComponent(jPanel1); jPanel2.setLayout(new java.awt.BorderLayout()); jPanel2.setPreferredSize(new java.awt.Dimension(453, 150)); columnsScrollPane.setPreferredSize(new java.awt.Dimension(453, 150)); jTableFields.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "Field name", "Field type", "Description" } ) { boolean[] canEdit = new boolean [] { false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jTableFields.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jTableFieldsKeyReleased(evt); } }); columnsScrollPane.setViewportView(jTableFields); jPanel2.add(columnsScrollPane, java.awt.BorderLayout.CENTER); jPanel3.setLayout(new java.awt.BorderLayout()); jPanel3.setMinimumSize(new java.awt.Dimension(10, 34)); jPanel3.setPreferredSize(new java.awt.Dimension(10, 34)); jPanel4.setLayout(new java.awt.GridBagLayout()); jPanel4.setPreferredSize(new java.awt.Dimension(150, 10)); okButton.setText("OK"); okButton.setPreferredSize(new java.awt.Dimension(65, 23)); okButton.setMaximumSize(new java.awt.Dimension(65, 23)); okButton.setMinimumSize(new java.awt.Dimension(65, 23)); okButton.setEnabled(false); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; jPanel4.add(okButton, gridBagConstraints); cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; jPanel4.add(cancelButton, gridBagConstraints); jPanel3.add(jPanel4, java.awt.BorderLayout.EAST); jPanel9.setLayout(null); jPanel9.setMinimumSize(new java.awt.Dimension(100, 20)); jPanel3.add(jPanel9, java.awt.BorderLayout.CENTER); jPanel2.add(jPanel3, java.awt.BorderLayout.SOUTH); columnsErrorMsgLabel.setText("jLabel1"); columnsErrorMsgLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP); columnsErrorMsgLabel.setVerticalTextPosition(javax.swing.SwingConstants.TOP); columnsErrorScrollPane.setViewportView(columnsErrorMsgLabel); jPanel2.add(columnsErrorScrollPane, java.awt.BorderLayout.CENTER); jSplitPane1.setBottomComponent(jPanel2); getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER); pack(); }//GEN-END:initComponents private void jButtonReadBeanAttributes1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonReadBeanAttributes1ActionPerformed String classname = jTextFieldBeanClass.getText().trim(); if (classname.equals("")){ javax.swing.JOptionPane.showMessageDialog(this, "No class specified!","Error",javax.swing.JOptionPane.ERROR_MESSAGE); return; } try { DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel(); dtm.setRowCount(0); Class clazz = Class.forName(classname); getFieldsFromClass(clazz,""); } catch (ClassNotFoundException cnf) { javax.swing.JOptionPane.showMessageDialog(this, "Class not found!\nCheck your classpath and retry.","Error",javax.swing.JOptionPane.ERROR_MESSAGE); return; } catch (Exception ex) { javax.swing.JOptionPane.showMessageDialog(this, ex.getMessage() ,"Error",javax.swing.JOptionPane.ERROR_MESSAGE); return; } }//GEN-LAST:event_jButtonReadBeanAttributes1ActionPerformed protected void getFieldsFromClass(Class clazz, String path) throws Exception { DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel(); java.lang.reflect.Method[] methods = clazz.getMethods(); java.lang.reflect.Field[] fields = clazz.getFields(); // for any method, looking for get<FieldName> .... for (int i=0; i<methods.length; ++i) { if ( java.lang.reflect.Modifier.isPublic( methods[i].getModifiers() ) && methods[i].getDeclaringClass().getName().equals(clazz.getName() ) && !java.lang.reflect.Modifier.isNative( methods[i].getModifiers() ) && methods[i].getName().startsWith("get") && !methods[i].getReturnType().isPrimitive() && !methods[i].getReturnType().isArray()) { String fieldName = methods[i].getName().substring(3); // Looking for the field... for (int f=0; f<fields.length; ++f) { if (fields[f].getName().equalsIgnoreCase( fieldName )) { fieldName = fields[f].getName(); break; } } String returnType = methods[i].getReturnType().getName(); boolean found = false; for (int cc=0; cc<standard_types.length; ++cc) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?