⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 Javachaxun这是一个成绩查询系统
💻 JAVA
字号:
/*
 * MainFrame.java
 *
 * Created on 2007年5月25日, 下午1:51
 */

package cn.vearn;

import java.awt.Color;
import java.util.regex.Pattern;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.UIManager;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import org.jdesktop.swingx.border.DropShadowBorder;
import org.jdesktop.swingx.decorator.AlternateRowHighlighter;
import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.decorator.HighlighterPipeline;
import org.jdesktop.swingx.decorator.PatternHighlighter;

/**
 *
 * @author  Administrator
 */
public class MainFrame extends javax.swing.JFrame {
    
    /** Creates new form MainFrame */
    public MainFrame() {
        initComponents();
        initModel();
    }
    
    /** 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.
     */
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jSplitPane1 = new javax.swing.JSplitPane();
        ((BasicSplitPaneUI)jSplitPane1.getUI()).getDivider().setBorder(BorderFactory.createEmptyBorder());
        jSplitPane2 = new javax.swing.JSplitPane();
        ((BasicSplitPaneUI)jSplitPane2.getUI()).getDivider().setBorder(BorderFactory.createEmptyBorder());
        jXTitledPanel2 = new org.jdesktop.swingx.JXTitledPanel();
        jXSearchPanel1 = new org.jdesktop.swingx.JXSearchPanel();
        jXTitledPanel3 = new org.jdesktop.swingx.JXTitledPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jXTreeTable1 = new org.jdesktop.swingx.JXTreeTable();
        jXTitledPanel1 = new org.jdesktop.swingx.JXTitledPanel();
        jXTaskPaneContainer1 = new org.jdesktop.swingx.JXTaskPaneContainer();
        jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane();
        jXHyperlink1 = new org.jdesktop.swingx.JXHyperlink();
        jXTaskPane2 = new org.jdesktop.swingx.JXTaskPane();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("\u5b66\u751f\u6210\u7ee9\u67e5\u8be2\u7cfb\u7edf");
        setResizable(false);
        jSplitPane1.setBorder(null);
        jSplitPane1.setDividerLocation(200);
        jSplitPane2.setBorder(null);
        jSplitPane2.setDividerLocation(80);
        jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
        jXTitledPanel2.setBorder(dsb);
        jXTitledPanel2.setTitle("\u6309\u540d\u79f0\u67e5\u627e");
        jXSearchPanel1.setFieldName("\u67e5\u627e");

        javax.swing.GroupLayout jXTitledPanel2Layout = new javax.swing.GroupLayout(jXTitledPanel2.getContentContainer());
        jXTitledPanel2.getContentContainer().setLayout(jXTitledPanel2Layout);
        jXTitledPanel2Layout.setHorizontalGroup(
            jXTitledPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jXSearchPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE)
        );
        jXTitledPanel2Layout.setVerticalGroup(
            jXTitledPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jXSearchPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
        );
        jSplitPane2.setTopComponent(jXTitledPanel2);

        jXTitledPanel3.setBorder(dsb);
        jXTitledPanel3.setTitle("\u6210\u7ee9\u5217\u8868");
        jXTreeTable1.setColumnControlVisible(true);
        jXTreeTable1.setHorizontalScrollEnabled(true);
        jXTreeTable1.setRootVisible(true);
        jXTreeTable1.setSelectionMode(0);
        jXTreeTable1.setShowsRootHandles(false);
        jXTreeTable1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jXTreeTable1ValueChanged(evt);
            }
        });

        jScrollPane1.setViewportView(jXTreeTable1);

        javax.swing.GroupLayout jXTitledPanel3Layout = new javax.swing.GroupLayout(jXTitledPanel3.getContentContainer());
        jXTitledPanel3.getContentContainer().setLayout(jXTitledPanel3Layout);
        jXTitledPanel3Layout.setHorizontalGroup(
            jXTitledPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE)
        );
        jXTitledPanel3Layout.setVerticalGroup(
            jXTitledPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
        );
        jSplitPane2.setRightComponent(jXTitledPanel3);

        jSplitPane1.setRightComponent(jSplitPane2);

        jXTitledPanel1.setBorder(dsb);
        jXTitledPanel1.setTitle("\u5e38\u89c4");

        jXTaskPane1.setTitle("\u64cd\u4f5c\u5217\u8868");
        jXHyperlink1.setForeground(new java.awt.Color(51, 102, 255));
        jXHyperlink1.setIcon(ICON_FIND);
        jXHyperlink1.setText("\u5f00\u59cb\u67e5\u627e");
        jXHyperlink1.setIconTextGap(6);
        jXHyperlink1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jXHyperlink1ActionPerformed(evt);
            }
        });

        jXTaskPane1.getContentPane().add(jXHyperlink1);

        jXTaskPaneContainer1.add(jXTaskPane1);

        jXTaskPane2.setTitle("\u66f4\u591a\u4fe1\u606f");
        jLabel1.setFont(new java.awt.Font("宋体", 1, 12));
        jLabel1.setText("\u672a\u9009\u62e9");
        jXTaskPane2.getContentPane().add(jLabel1);

        jLabel2.setText("\u603b\u6210\u7ee9: ");
        jXTaskPane2.getContentPane().add(jLabel2);

        jTextField1.setEditable(false);
        jXTaskPane2.getContentPane().add(jTextField1);

        jLabel3.setText("\u603b\u6210\u7ee9: ");
        jXTaskPane2.getContentPane().add(jLabel3);

        jTextField2.setEditable(false);
        jXTaskPane2.getContentPane().add(jTextField2);

        jXTaskPaneContainer1.add(jXTaskPane2);

        javax.swing.GroupLayout jXTitledPanel1Layout = new javax.swing.GroupLayout(jXTitledPanel1.getContentContainer());
        jXTitledPanel1.getContentContainer().setLayout(jXTitledPanel1Layout);
        jXTitledPanel1Layout.setHorizontalGroup(
            jXTitledPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jXTaskPaneContainer1, javax.swing.GroupLayout.DEFAULT_SIZE, 196, Short.MAX_VALUE)
        );
        jXTitledPanel1Layout.setVerticalGroup(
            jXTitledPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jXTaskPaneContainer1, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)
        );
        jSplitPane1.setLeftComponent(jXTitledPanel1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 630, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 430, Short.MAX_VALUE)
                .addContainerGap())
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jXTreeTable1ValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jXTreeTable1ValueChanged
// TODO 将在此处添加您的处理代码:
        if (jXTreeTable1.getSelectionModel().isSelectionEmpty()) {
            jLabel1.setText("未选择");
            jTextField1.setText("");
            jTextField2.setText("");
        }  else {
            
            TreePath tp = evt.getPath();
            DefaultMutableTreeNode mutableNode = (DefaultMutableTreeNode) tp.getLastPathComponent();
            
            Object o = mutableNode.getUserObject();
            if(o != null && o instanceof NodeEntity) {
                NodeEntity obj = (NodeEntity) o;
                jLabel1.setText(obj.getNodeName());
                
                int sum = obj.getChinese() + obj.getMaths() + obj.getPhysics() + obj.getEconomics() + obj.getEnglish();
                int average = sum / 5;
                jTextField1.setText(obj.isCourse() ? sum + "" : "无");
                jTextField2.setText(obj.isCourse() ? average + "" : "无");
            }  
        }
    }//GEN-LAST:event_jXTreeTable1ValueChanged
    
    private void jXHyperlink1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jXHyperlink1ActionPerformed
// TODO 将在此处添加您的处理代码:
        doPattern();
    }//GEN-LAST:event_jXHyperlink1ActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new MainFrame().setVisible(true);
                }
            });
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JSplitPane jSplitPane2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private org.jdesktop.swingx.JXHyperlink jXHyperlink1;
    private org.jdesktop.swingx.JXSearchPanel jXSearchPanel1;
    private org.jdesktop.swingx.JXTaskPane jXTaskPane1;
    private org.jdesktop.swingx.JXTaskPane jXTaskPane2;
    private org.jdesktop.swingx.JXTaskPaneContainer jXTaskPaneContainer1;
    private org.jdesktop.swingx.JXTitledPanel jXTitledPanel1;
    private org.jdesktop.swingx.JXTitledPanel jXTitledPanel2;
    private org.jdesktop.swingx.JXTitledPanel jXTitledPanel3;
    private org.jdesktop.swingx.JXTreeTable jXTreeTable1;
    // 变量声明结束//GEN-END:variables
    
    private DropShadowBorder dsb = new DropShadowBorder(Color.BLACK, 0, 10, .5f, 12, false, true, true, true);
    private final ImageIcon ICON_FIND = new ImageIcon("o_find.gif");
    
    private void initModel() {
        jXTreeTable1.setTreeTableModel(CommonParse.readXML("data.xml"));
        
        jXTreeTable1.expandAll();
        
        jXTreeTable1.getColumnModel().getColumn(0).setPreferredWidth(120);
        
        HighlighterPipeline hl = new HighlighterPipeline();
        hl.addHighlighter(new AlternateRowHighlighter());
        
        PatternHighlighter pattern = new PatternHighlighter();
        hl.addHighlighter(pattern);
        
        jXTreeTable1.setHighlighters(hl);
        
    }
    
    private void doPattern() {
        Pattern current = jXSearchPanel1.getPattern();
        
        HighlighterPipeline hl = jXTreeTable1.getHighlighters();
        Highlighter[] array = hl.getHighlighters();
        
        PatternHighlighter pattern = (PatternHighlighter) array[1];
        pattern.setPattern(current);
        pattern.setForeground(Color.RED);
        pattern.setTestColumnIndex(0);
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -