📄 aplet.java
字号:
jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem2_actionPerformed(e); } }); jMenuItem3.setText("CDE/Motif"); jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem3_actionPerformed(e); } }); this.getContentPane().add(jPanel1, BorderLayout.CENTER); jPanel1.add(jSplitPane1, BorderLayout.CENTER); jSplitPane1.add(jScrollPane1, JSplitPane.LEFT); jSplitPane1.add(jSplitPane2, JSplitPane.RIGHT); jSplitPane2.add(jScrollPane2, JSplitPane.TOP); jScrollPane2.getViewport().add(izrazi, null); jSplitPane2.add(jScrollPane3, JSplitPane.BOTTOM); jScrollPane3.getViewport().add(rezultat, null); jScrollPane1.getViewport().add(drvo, null); izrazi_popup.add(izrazi_evaluate_popup); izrazi_popup.add(izrazi_explain_popup); izrazi_popup.add(izrazi_parse_popup); izrazi_popup.add(izrazi_normalize_popup); izrazi_popup.add(izrazi_reduce_popup); izrazi_popup.add(izrazi_select_popup); izrazi_popup.add(izrazi_variables_popup); izrazi_popup.add(izrazi_clear_popup); izrazi_popup.addSeparator(); izrazi_popup.add(jRadioButtonMenuItem1); izrazi_popup.add(jRadioButtonMenuItem2); izrazi_popup.add(jRadioButtonMenuItem3); izrazi_popup.addSeparator(); izrazi_popup.add(izrazi_background_popup); izrazi_popup.add(izrazi_foreground_popup); izrazi_popup.add(jMenu1); izrazi_popup.addSeparator(); // izrazi_popup.add(izrazi_help_popup); izrazi_popup.add(izrazi_about_popup); rezultat_popup.add(rezultat_background_popup); rezultat_popup.add(rezultat_foreground_popup); drvo_popup.add(drvo_expand_popup); drvo_popup.add(drvo_expand_selection_popup); drvo_popup.addSeparator(); drvo_popup.add(drvo_collapse_popup); drvo_popup.add(drvo_collapse_selection_popup); jSplitPane1.setDividerLocation(200); jSplitPane2.setDividerLocation(150); izrazi_explain_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_ENTER, ActionEvent.CTRL_MASK )); izrazi_normalize_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N, ActionEvent.CTRL_MASK )); izrazi_parse_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_P, ActionEvent.CTRL_MASK )); izrazi_evaluate_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_E, ActionEvent.CTRL_MASK )); izrazi_reduce_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_R, ActionEvent.CTRL_MASK )); izrazi_select_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, ActionEvent.CTRL_MASK )); izrazi_variables_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_D, ActionEvent.CTRL_MASK )); izrazi_clear_popup.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_L, ActionEvent.CTRL_MASK )); buttonGroup1.add(jRadioButtonMenuItem1); buttonGroup1.add(jRadioButtonMenuItem2); buttonGroup1.add(jRadioButtonMenuItem3); jMenu1.add(jMenuItem1); jMenu1.add(jMenuItem2); jMenu1.add(jMenuItem3); // jRadioButtonMenuItem1.setMnemonic( KeyEvent.VK_D ); // jRadioButtonMenuItem2.setMnemonic( KeyEvent.VK_R ); // jRadioButtonMenuItem3.setMnemonic( KeyEvent.VK_G ); } public void popunjavanje_drva( DefaultMutableTreeNode korijen ) { DefaultMutableTreeNode operatori = null; DefaultMutableTreeNode varijable = null; DefaultMutableTreeNode funkcije = null; operatori = new DefaultMutableTreeNode( "Operators"); korijen.add( operatori ); varijable = new DefaultMutableTreeNode( "Variables"); korijen.add( varijable ); funkcije = new DefaultMutableTreeNode( "Functions"); korijen.add( funkcije ); punjenje_operatora( operatori ); punjenje_varijabli( varijable ); punjenje_funkcija( funkcije ); } public void punjenje_varijabli( DefaultMutableTreeNode v ) { // punjenje stabla DefaultMutableTreeNode mathematical=null; DefaultMutableTreeNode physical=null; DefaultMutableTreeNode informatic=null; mathematical = new DefaultMutableTreeNode( "Mathematical" ); physical = new DefaultMutableTreeNode( "Physical" ); informatic = new DefaultMutableTreeNode( "Informatic" ); user_defined = new DefaultMutableTreeNode( "User-defined" ); v.add( mathematical ); v.add( physical ); v.add( informatic ); v.add( user_defined ); // Physical physical.add( new DefaultMutableTreeNode( "ATOMIC_MASS" ) ); physical.add( new DefaultMutableTreeNode( "AVOGADRO" ) ); physical.add( new DefaultMutableTreeNode( "BOLTZMANN" ) ); physical.add( new DefaultMutableTreeNode( "CONDUCTANCE_QUANTUM" ) ); physical.add( new DefaultMutableTreeNode( "ELECTRIC_CONSTANT" ) ); physical.add( new DefaultMutableTreeNode( "ELECTRON_MASS" ) ); physical.add( new DefaultMutableTreeNode( "ELECTRON_VOLT" ) ); physical.add( new DefaultMutableTreeNode( "ELEMENTARY_CHARGE" ) ); physical.add( new DefaultMutableTreeNode( "FARADAY" ) ); physical.add( new DefaultMutableTreeNode( "FINE_STRUCTURE" ) ); physical.add( new DefaultMutableTreeNode( "GRAVITY" ) ); physical.add( new DefaultMutableTreeNode( "INVERSE_FINE_STRUCTURE" ) ); physical.add( new DefaultMutableTreeNode( "MAGNETIC" ) ); physical.add( new DefaultMutableTreeNode( "MAGNETIC_FLUX" ) ); physical.add( new DefaultMutableTreeNode( "MOLAR_GAS" ) ); physical.add( new DefaultMutableTreeNode( "NEWTON" ) ); physical.add( new DefaultMutableTreeNode( "PLANCK" ) ); physical.add( new DefaultMutableTreeNode( "PROTON_MASS" ) ); physical.add( new DefaultMutableTreeNode( "PROTON_ELECTRON_MASS_RATIO" ) ); physical.add( new DefaultMutableTreeNode( "RYDBERG" ) ); physical.add( new DefaultMutableTreeNode( "SPEED_OF_LIGHT" ) ); physical.add( new DefaultMutableTreeNode( "STEFAN_BOLTZMANN" ) ); mathematical.add( new DefaultMutableTreeNode( "APERY" ) ); mathematical.add( new DefaultMutableTreeNode( "CATALAN" ) ); // mathematical.add( new DefaultMutableTreeNode( "CHAITIN" ) ); mathematical.add( new DefaultMutableTreeNode( "E" ) ); mathematical.add( new DefaultMutableTreeNode( "EULER" ) ); mathematical.add( new DefaultMutableTreeNode( "FEIGENBAUM" ) ); // mathematical.add( new DefaultMutableTreeNode( "GOLDEN_MEAN" ) ); mathematical.add( new DefaultMutableTreeNode( "IMAGINARY_UNIT" ) ); mathematical.add( new DefaultMutableTreeNode( "KHINTCHINE" ) ); mathematical.add( new DefaultMutableTreeNode( "MADELUNG" ) ); mathematical.add( new DefaultMutableTreeNode( "PI" ) ); mathematical.add( new DefaultMutableTreeNode( "PYTHAGORAS" ) ); informatic.add( new DefaultMutableTreeNode( "MIN_INT" ) ); informatic.add( new DefaultMutableTreeNode( "MAX_INT" ) ); informatic.add( new DefaultMutableTreeNode( "MIN_DEC" ) ); informatic.add( new DefaultMutableTreeNode( "MAX_DEC" ) ); informatic.add( new DefaultMutableTreeNode( "TB" ) ); informatic.add( new DefaultMutableTreeNode( "GB" ) ); informatic.add( new DefaultMutableTreeNode( "MB" ) ); informatic.add( new DefaultMutableTreeNode( "KB" ) ); // punjenje vektora varijable.addElement( new Varijabla( "TB", 1099511627776L ) ); varijable.addElement( new Varijabla( "STEFAN_BOLTZMANN", 5.6704E-8 ) ); varijable.addElement( new Varijabla( "SPEED_OF_LIGHT", 299792458 ) ); varijable.addElement( new Varijabla( "RYDBERG", 10973731.568549 ) ); varijable.addElement( new Varijabla( "PYTHAGORAS", Math.sqrt(2) ) ); varijable.addElement( new Varijabla( "PROTON_MASS", 1.67262158E-27 ) ); varijable.addElement( new Varijabla( "PROTON_ELECTRON_MASS_RATIO", 1836.1526675 ) ); varijable.addElement( new Varijabla( "PLANCK", 6.62606876E-34 ) ); varijable.addElement( new Varijabla( "PI", Math.PI ) ); varijable.addElement( new Varijabla( "NEWTON", 6.673E-11 ) ); varijable.addElement( new Varijabla( "MOLAR_GAS", 8.314472 ) ); varijable.addElement( new Varijabla( "MIN_INT", Integer.MIN_VALUE ) ); varijable.addElement( new Varijabla( "MIN_DEC", -Double.MAX_VALUE ) ); varijable.addElement( new Varijabla( "MB", 1048576 ) ); varijable.addElement( new Varijabla( "MAX_INT", Integer.MAX_VALUE ) ); varijable.addElement( new Varijabla( "MAX_DEC", Double.MAX_VALUE ) ); varijable.addElement( new Varijabla( "MAGNETIC_FLUX", 2.067833636E-15 ) ); varijable.addElement( new Varijabla( "MAGNETIC", 4E-7 * Math.PI ) ); varijable.addElement( new Varijabla( "MADELUNG", 2.0531987328 ) ); varijable.addElement( new Varijabla( "KHINTCHINE", 2.685452001 ) ); varijable.addElement( new Varijabla( "KB", 1024 ) ); varijable.addElement( new Varijabla( "INVERSE_FINE_STRUCTURE", 137.03599976 ) ); varijable.addElement( new Varijabla( "IMAGINARY_UNIT", Math.sqrt(-1) ) ); varijable.addElement( new Varijabla( "GRAVITY", 9.80665 ) ); varijable.addElement( new Varijabla( "GB", 1073741824 ) ); varijable.addElement( new Varijabla( "FINE_STRUCTURE", 7.297352533E-3 ) ); varijable.addElement( new Varijabla( "FEIGENBAUM", 2.50290787509589282228390287272909 ) ); varijable.addElement( new Varijabla( "FARADAY", 96485.3415 ) ); varijable.addElement( new Varijabla( "EULER", 0.57721566490153286060651209008240243104215933593992 ) ); varijable.addElement( new Varijabla( "ELEMENTARY_CHARGE", 1.602176462E-19 ) ); varijable.addElement( new Varijabla( "ELECTRON_VOLT", 1.602176462E-19 ) ); varijable.addElement( new Varijabla( "ELECTRON_MASS", 9.10938188E-31 ) ); varijable.addElement( new Varijabla( "ELECTRIC_CONSTANT", 8.854187817E-12 ) ); varijable.addElement( new Varijabla( "E", Math.E ) ); varijable.addElement( new Varijabla( "CONDUCTANCE_QUANTUM", 7.748091696E-5 ) ); varijable.addElement( new Varijabla( "CATALAN", 0.915965594 ) ); varijable.addElement( new Varijabla( "BOLTZMANN", 1.3806503E-23 ) ); varijable.addElement( new Varijabla( "AVOGADRO", 6.02214199E+23 ) ); varijable.addElement( new Varijabla( "ATOMIC_MASS", 1.66053873E-27 ) ); varijable.addElement( new Varijabla( "APERY", 1.20205690315959428539973816151144999076498629234049 ) ); } public void punjenje_funkcija( DefaultMutableTreeNode f ) { // punjenje stabla DefaultMutableTreeNode trigonometric=null; DefaultMutableTreeNode inverse_trigonometric=null; DefaultMutableTreeNode hyperbolic=null; DefaultMutableTreeNode inverse_hyperbolic=null; DefaultMutableTreeNode exponential=null; DefaultMutableTreeNode combinatoric=null; DefaultMutableTreeNode statistical=null; DefaultMutableTreeNode other=null; DefaultMutableTreeNode all=null; trigonometric = new DefaultMutableTreeNode( "Trigonometric" ); inverse_trigonometric = new DefaultMutableTreeNode( "Inverse trigonometric" ); hyperbolic = new DefaultMutableTreeNode( "Hyperbolic" ); inverse_hyperbolic = new DefaultMutableTreeNode( "Inverse hyperbolic" ); exponential = new DefaultMutableTreeNode( "Exponential" ); combinatoric = new DefaultMutableTreeNode( "Combinatoric" ); statistical = new DefaultMutableTreeNode( "Statistical" ); other = new DefaultMutableTreeNode( "Other" ); all = new DefaultMutableTreeNode( "All" ); f.add( trigonometric ); f.add( inverse_trigonometric ); f.add( hyperbolic ); f.add( inverse_hyperbolic ); f.add( exponential ); f.add( combinatoric ); f.add( statistical ); f.add( other ); f.add( all ); trigonometric.add( new DefaultMutableTreeNode( "sin(x)" ) ); trigonometric.add( new DefaultMutableTreeNode( "cos(x)" ) ); trigonometric.add( new DefaultMutableTreeNode( "tan(x)" ) ); trigonometric.add( new DefaultMutableTreeNode( "cot(x)" ) ); trigonometric.add( new DefaultMutableTreeNode( "sec(x)" ) ); trigonometric.add( new DefaultMutableTreeNode( "csc(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "asin(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "acos(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "atan(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "atan2(x,y)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "acot(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "asec(x)" ) ); inverse_trigonometric.add( new DefaultMutableTreeNode( "acsc(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "sinh(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "cosh(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "tanh(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "coth(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "sech(x)" ) ); hyperbolic.add( new DefaultMutableTreeNode( "csch(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "asinh(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "acosh(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "atanh(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "acoth(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "asech(x)" ) ); inverse_hyperbolic.add( new DefaultMutableTreeNode( "acsch(x)" ) ); exponential.add( new DefaultMutableTreeNode( "log(x)" ) ); exponential.add( new DefaultMutableTreeNode( "log2(x)" ) ); exponential.add( new DefaultMutableTreeNode( "log10(x)" ) ); exponential.add( new DefaultMutableTreeNode( "exp(x)" ) ); exponential.add( new DefaultMutableTreeNode( "exp2(x)" ) ); exponential.add( new DefaultMutableTreeNode( "exp10(x)" ) ); exponential.add( new DefaultMutableTreeNode( "sqrt(x)" ) ); exponential.add( new DefaultMutableTreeNode( "cur(x)" ) ); combinatoric.add( new DefaultMutableTreeNode( "comb(n,r)" ) ); combinatoric.add( new DefaultMutableTreeNode( "combr(n,r)" ) ); combinatoric.add( new DefaultMutableTreeNode( "perm(n)" ) ); combinatoric.add( new DefaultMutableTreeNode( "permr(n,r)" ) ); combinatoric.add( new DefaultMutableTreeNode( "var(n,r)" ) ); combinatoric.add( new DefaultMutableTreeNode( "varr(n,r)" ) ); statistical.add( new DefaultMutableTreeNode( "sum(...)" ) ); statistical.add( new DefaultMutableTreeNode( "avg(...)" ) ); statistical.add( new DefaultMutableTreeNode( "min(...)" ) ); statistical.add( new DefaultMutableTreeNode( "max(...)" ) ); statistical.add( new DefaultMutableTreeNode( "stddev(...)" ) ); statistical.add( new DefaultMutableTreeNode( "count(...)" ) ); other.add( new DefaultMutableTreeNode( "abs(x)" ) ); other.add( new DefaultMutableTreeNode( "ceil(x)" ) ); other.add( new DefaultMutableTreeNode( "deg(x)" ) ); other.add( new DefaultMutableTreeNode( "fact(x)" ) ); other.add( new DefaultMutableTreeNode( "floor(x)" ) ); other.add( new DefaultMutableTreeNode( "frac(x)" ) ); other.add( new DefaultMutableTreeNode( "hypot(x,y)" ) ); other.add( new DefaultMutableTreeNode( "pow(x,y)" ) ); other.add( new DefaultMutableTreeNode( "rad(x)" ) ); other.add( new DefaultMutableTreeNode( "random(x)" ) ); other.add( new DefaultMutableTreeNode( "round(x, y)" ) ); other.add( new DefaultMutableTreeNode( "sign(x)" ) ); other.add( new DefaultMutableTreeNode( "trunc(x, y)" ) ); // other.add( new DefaultMutableTreeNode( "pol(x)" ) ); // other.add( new DefaultMutableTreeNode( "rec(x)" ) ); // other.add( new DefaultMutableTreeNode( "gcd(x)" ) ); // other.add( new DefaultMutableTreeNode( "degr(x,y,z)" ) ); funkcije.addElement( new Funkcija("varr", 2) ); funkcije.addElement( new Funkcija("var", 2) ); funkcije.addElement( new Funkcija("trunc", 2) ); funkcije.addElement( new Funkcija("tanh", 1) ); funkcije.addElement( new Funkcija("tan", 1) ); funkcije.addElement( new Funkcija("sum", 0) ); funkcije.addElement( new Funkcija("stddev", 0) ); funkcije.addElement( new Funkcija("sqrt", 1) ); funkcije.addElement( new Funkcija("sinh", 1) ); funkcije.addElement( new Funkcija("sin", 1) ); funkcije.addElement( new Funkcija("sign", 1) ); funkcije.addElement( new Funkcija("sech", 1) ); funkcije.addElement( new Funkcija("sec", 1) ); funkcije.addElement( new Funkcija("round", 2) ); funkcije.addElement( new Funkcija("random", 1) ); funkcije.addElement( new Funkcija("rad", 1) ); funkcije.addElement( new Funkcija("pow", 2) ); funkcije.addElement( new Funkcija("permr", 2) ); funkcije.addElement( new Funkcija("perm", 1) ); funkcije.addElement( new Funkcija("min", 0) ); funkcije.addElement( new Funkcija("max", 0) ); funkcije.addElement( new Funkcija("log2", 1) ); funkcije.addElement( new Funkcija("log10", 1) ); funkcije.addElement( new Funkcija("log", 1) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -