📄 mainframe.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 + -