From fa19f3f9179aae7878059d07c0202e51cb13c22c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E8=B6=85=E5=B1=95?= <曹家俊@gmail.com> Date: Mon, 14 Nov 2022 13:39:08 +0800 Subject: [PATCH 1/3] v0.003 --- GuiCalculator.java | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/GuiCalculator.java b/GuiCalculator.java index 5761aa6..54986ae 100644 --- a/GuiCalculator.java +++ b/GuiCalculator.java @@ -58,8 +58,7 @@ class CalculatorUI extends JFrame if(source==bt43) { - //str=str+"= "+CalcString.getRes(str); - str=str+3; + str=str+"= "+CalcString.getRes(str); textField.setText(str); int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); @@ -113,4 +112,46 @@ class CalculatorUI extends JFrame } } +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;i Date: Mon, 14 Nov 2022 13:44:19 +0800 Subject: [PATCH 2/3] v0.04 --- GuiCalculator.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/GuiCalculator.java b/GuiCalculator.java index 54986ae..13b41b3 100644 --- a/GuiCalculator.java +++ b/GuiCalculator.java @@ -28,7 +28,7 @@ class CalculatorUI extends JFrame { private JTextField textField=new JTextField("0"); - private JPanel panel=new JPanel(new GridLayout(4,4)); + private JPanel panel=new JPanel(new GridLayout(5,4)); private JButton bt11=new JButton("7"); private JButton bt12=new JButton("8"); private JButton bt13=new JButton("9"); @@ -45,8 +45,12 @@ class CalculatorUI extends JFrame private JButton bt42=new JButton("."); private JButton bt43=new JButton("="); private JButton bt44=new JButton("+"); + private JButton bt51=new JButton("%"); + private JButton bt52=new JButton("!"); + private JButton bt53=new JButton("~"); + private JButton bt54=new JButton("^"); JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, - bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44}; + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54}; class MyHandler implements ActionListener { @@ -98,7 +102,7 @@ class CalculatorUI extends JFrame this.add(panel,BorderLayout.CENTER); panel.setPreferredSize(new Dimension(300,350)); - for(int i=0;i<16;i++){ + for(int i=0;i<20;i++){ jb[i].setFont(new Font("楷体",Font.BOLD,32)); panel.add(jb[i]); } @@ -107,7 +111,7 @@ class CalculatorUI extends JFrame private void ListenerAdd(MyHandler myHandler) { - for(int i=0;i<16;i++){ + for(int i=0;i<20;i++){ jb[i].addActionListener(myHandler); } } @@ -123,7 +127,7 @@ class CalcString for(int i=0;i Date: Mon, 14 Nov 2022 13:46:01 +0800 Subject: [PATCH 3/3] v0.09 --- GuiCalculator.jar | Bin 0 -> 4740 bytes GuiCalculator.java | 5 + GuiCalculator.jnlp | 20 +++ gitops/idegitplugin/CalcString.class | Bin 0 -> 1005 bytes .../idegitplugin/CalculatorUI$MyHandler.class | Bin 0 -> 1771 bytes gitops/idegitplugin/CalculatorUI.class | Bin 0 -> 3336 bytes gitops/idegitplugin/GuiCalculator.class | Bin 0 -> 529 bytes gitops/idegitplugin/GuiCalculator.java | 169 ++++++++++++++++++ index.html | 10 ++ jdst.bat | 50 ++++++ launch.json | 20 +++ myKeystore.policy | 0 mykeystore.store | Bin 0 -> 1966 bytes vscodegitplugin/GuiCalculator.jar | Bin 0 -> 4740 bytes vscodegitplugin/GuiCalculator.jnlp | 20 +++ vscodegitplugin/index.html | 10 ++ vscodegitplugin/myKeystore.policy | 1 + vscodegitplugin/mykeystore.cert | Bin 0 -> 1224 bytes vscodegitplugin/mykeystore.store | Bin 0 -> 1966 bytes vscodegitplugin/vscodegitplugin.war | Bin 0 -> 8955 bytes 20 files changed, 305 insertions(+) create mode 100644 GuiCalculator.jar create mode 100644 GuiCalculator.jnlp create mode 100644 gitops/idegitplugin/CalcString.class create mode 100644 gitops/idegitplugin/CalculatorUI$MyHandler.class create mode 100644 gitops/idegitplugin/CalculatorUI.class create mode 100644 gitops/idegitplugin/GuiCalculator.class create mode 100644 gitops/idegitplugin/GuiCalculator.java create mode 100644 index.html create mode 100644 jdst.bat create mode 100644 launch.json create mode 100644 myKeystore.policy create mode 100644 mykeystore.store create mode 100644 vscodegitplugin/GuiCalculator.jar create mode 100644 vscodegitplugin/GuiCalculator.jnlp create mode 100644 vscodegitplugin/index.html create mode 100644 vscodegitplugin/myKeystore.policy create mode 100644 vscodegitplugin/mykeystore.cert create mode 100644 vscodegitplugin/mykeystore.store create mode 100644 vscodegitplugin/vscodegitplugin.war diff --git a/GuiCalculator.jar b/GuiCalculator.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb185418f2d3473dd9ed4da06ced6989196d4ca4 GIT binary patch literal 4740 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 + + + JWS to Run GuiCalculator + czldl + GuiCalculator Test Example for Java Web Start. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gitops/idegitplugin/CalcString.class b/gitops/idegitplugin/CalcString.class new file mode 100644 index 0000000000000000000000000000000000000000..233a282c80c5a0d467cbd947b851b026c0012580 GIT binary patch literal 1005 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 e)6+O}5mWVlrVQpR{e>9))x;ah literal 0 HcmV?d00001 diff --git a/gitops/idegitplugin/GuiCalculator.class b/gitops/idegitplugin/GuiCalculator.class new file mode 100644 index 0000000000000000000000000000000000000000..5454a398d025696934e2817850a266685b904588 GIT binary patch literal 529 zcmZ`$O;5r=5Pb`UB2+=NfZuqllGuwEqw#`)Xo#4gB=c?Wj=tgJVt1c7izUi-y$T zVl$R??)77js~|kk1PfW@7^(xQf^p=^2SL%;iwDwoXV9B-hV5=gH&Ja$b@lUJom107 z8x}UPMRm0DiyJ*t7w$zPpMYk>TjC^W;3ie6?!y?)A zPjZbR%fjOfVVGwAQYS=_AQB)>@0_74|{svk0 Bb|C-& literal 0 HcmV?d00001 diff --git a/gitops/idegitplugin/GuiCalculator.java b/gitops/idegitplugin/GuiCalculator.java new file mode 100644 index 0000000..fc42a42 --- /dev/null +++ b/gitops/idegitplugin/GuiCalculator.java @@ -0,0 +1,169 @@ +//GuiCalculator.java + +package gitops.idegitplugin; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class GuiCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("VSCode GitPlugin GuiCalculator"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(5,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + private JButton bt51=new JButton("%"); + private JButton bt52=new JButton("!"); + private JButton bt53=new JButton("~"); + private JButton bt54=new JButton("^"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+"= "+CalcString.getRes(str); + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("楷体",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<20;i++){ + jb[i].setFont(new Font("楷体",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<20;i++){ + jb[i].addActionListener(myHandler); + } + } + +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;i + + + +Java Web Start + + + Download JWS and to Run GuiCalculator + + \ No newline at end of file diff --git a/jdst.bat b/jdst.bat new file mode 100644 index 0000000..a961780 --- /dev/null +++ b/jdst.bat @@ -0,0 +1,50 @@ +rem 0step ɾmykeystore.certpolicystore +del mykeystore.policy +del mykeystore.store +del mykeystore.cert +rem +rem 1step лjava binĿ¼ +rem JavaĻҲֱִjava +rem cd "C:/Program Files/Java/jdk1.8.0_281/bin" +rem +rem +rem 2step ʹkeytoolܳ׿ +rem ijϢ-dname +keytool -genkey -alias mykey -keystore mykeystore.store -keypass mykeypass -storepass mystorepass -validity 365 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH" +rem +rem +rem 3step ʹkeytoolߵǩʱõ֤ +rem Կ:mystorepass +rem keytool -export -keystore mykeystore.store -alias mykey -validity 365 -file mykeystore.cert -storepass mystorepass +rem +rem +rem 4step ѹclassļΪjar +javac *.java -d . +jar cvfe GuiCalculator.jar gitops.idegitplugin.GuiCalculator gitops/idegitplugin/*.class +rem +rem +rem 5step ʹjarsignerǩjarѹĵ +rem Կ:mystorepass +rem mykeyԿ:mykeypass +rem jarsigner -keystore myKeystore.store GuiCalculator.jar mykey -storepass mystorepass -keypass mykeypass +rem +rem +rem 6step myKeystore.policyļ +echo keystore "file:myKeystore.store","JKS"; grant signedBy "mykey" { permission java.io.FilePermission"<>","read";};>myKeystore.policy +rem +rem 7step +mkdir vscodegitplugin +copy mykeystore.policy vscodegitplugin +copy mykeystore.store vscodegitplugin +copy mykeystore.cert vscodegitplugin +copy index.html vscodegitplugin +copy GuiCalculator.jar vscodegitplugin +copy GuiCalculator.jnlp vscodegitplugin +cd vscodegitplugin +jar cvf vscodegitplugin.war * +copy vscodegitplugin.war "C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps" +rem +rem 8step +"C:\Program Files\Java\jre1.8.0_281\bin\javaws.exe" GuiCalculator.jnlp +rem "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://www.czldl.net/vscodegitplugin/index.html +echo "Ok" diff --git a/launch.json b/launch.json new file mode 100644 index 0000000..3a44c53 --- /dev/null +++ b/launch.json @@ -0,0 +1,20 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Launch Current File", + "request": "launch", + "mainClass": "${file}" + }, + { + "type": "java", + "name": "Launch GuiCalculator", + "request": "launch", + "mainClass": "gitops.idegitplugin.GuiCalculator" + } + ] +} \ No newline at end of file diff --git a/myKeystore.policy b/myKeystore.policy new file mode 100644 index 0000000..e69de29 diff --git a/mykeystore.store b/mykeystore.store new file mode 100644 index 0000000000000000000000000000000000000000..2854d1d88dcac023cd1a78573a13426a9f069b3c GIT binary patch literal 1966 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 + + + JWS to Run GuiCalculator + czldl + GuiCalculator Test Example for Java Web Start. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vscodegitplugin/index.html b/vscodegitplugin/index.html new file mode 100644 index 0000000..0fd0b60 --- /dev/null +++ b/vscodegitplugin/index.html @@ -0,0 +1,10 @@ + + + + +Java Web Start + + + Download JWS and to Run GuiCalculator + + \ No newline at end of file diff --git a/vscodegitplugin/myKeystore.policy b/vscodegitplugin/myKeystore.policy new file mode 100644 index 0000000..359a0f1 --- /dev/null +++ b/vscodegitplugin/myKeystore.policy @@ -0,0 +1 @@ +keystore "file:myKeystore.store","JKS"; grant signedBy "mykey" { permission java.io.FilePermission"<>","read";}; diff --git a/vscodegitplugin/mykeystore.cert b/vscodegitplugin/mykeystore.cert new file mode 100644 index 0000000000000000000000000000000000000000..51a0d9339822c12b93286d898ae680aa4e16c3e3 GIT binary patch literal 1224 zcmXqLVmV^a#FD>&nTe5!iKRO2gn|Jt8)rhB2V*KT3o{cdgF%WRw*e;`b0`a&Fq5-~ zA)f&ch{Gk!nwXbSnrSFtzz5=U2(u?=lvZWrmm2aKaDznHg;^>pDk@=IZef<>jH*&Y zQ3GL+EVD3APG)IJeqMS`W@28tft)z6k)eU5k&%I+skxzP6p(9##HEufnwXsonwU)4 z*tOa`&RMW90y!E?O^l2T{gtLScdmN5fA!mrs`H+K+dk_ZooBt?T;j#6Bh%#V{+h8p zcMe>6M8eo|2j}xc>tupwFL#e_y&$-D$Ck?WQqPvmm^FO;BAd-PG#2UqQWxa1OT_G*oH09@}^!;ddX)B*T=MBpilVxl4 zN?*>1ePp{qQ~#h~&-`C=8ylY+_imrG-QfDp$DWb;8JshUL@h;M*=BdU1s^kZ?QgI) zT5{;Yr=kg}d4Bd?)*KcKj|4n<*dwL6xb}YBLg#zlY5!R!*j+s@ru;DCO8YU6m-UJ= zH)KyKpU$&jPyM0v*lC}K4{MpFWrEDLbS7DbUEiiHYpwWx|K9Uo=_kvNx4t*pWW4KX z!+||lGh=~a#2~gTCPKj@pun$`Y4P-M7G9HERwfk(L#{kodO%l2?}7icXL8;bCV1^# z({KK6D7d=Vpbn<#UXdsef{}o7g^k(UIpadlec(e6~h6 z=$Q4&udut)`O=SnK}MgEQ&&vIk&0uztm@lkW?Aj#=6vZw*{n9S82C@ z^T|-VZFgMXJ9K8V_m;OC^lK)(Tr%zQ(%9hW*MD5Ee3SfUZ~Jz4yQS)(Pbv?}4K;ID zw7-#a_xMrwJO1AGkQT#iC8K*!gYT|q64d6EXS!uD-ALu1`np@)bGfsP=y@h=$LIO8#o3^- zLr8qx%B$LIPjtOjpTwH_ukO*lcX#W1F6AVCZs`(Ge7;ospl;awOq=X)(kF5bPJ8&Q z^7#AdE0Xo~_6s*Y$P(Ccbw<#VXH#VB5_nHAut$U}se7^Unol!FNTl$}Dy8OKA1)u) z|DXN!mE(rA?ShwN`&HL^l<~1`|811>@mpX@#$joOi7%rTD;mff$O1FDEFX&)i->W6 z@kx()?~kUutvPn`|Hl^Zb8O4e${1z`1_N7Q5}Oioa9J|{5n+v&#g@Gdf|eWyuV2xV r{?D!M8d<|6qZq;dZQiPnf}56fKRYnt!Y}*hpC9rntuOL+Ii&;uX&&iG literal 0 HcmV?d00001 diff --git a/vscodegitplugin/mykeystore.store b/vscodegitplugin/mykeystore.store new file mode 100644 index 0000000000000000000000000000000000000000..2854d1d88dcac023cd1a78573a13426a9f069b3c GIT binary patch literal 1966 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