📄 lset.java
字号:
package l;import java.awt.event.*;import java.awt.*;/** * Title: L * Description: * Copyright: Copyright (c) 2003 * Company: J & K Studio * @author keatskk@sina.com * @version 1.0 */final class LSet extends Frame { L localL; Label lblStartX = new Label(); TextField txtStartX = new TextField(); Label lblStartY = new Label(); TextField txtStartY = new TextField(); Label lblDirection = new Label(); TextField txtDirection = new TextField(); Label lblRotation = new Label(); TextField txtRotation = new TextField(); Label lbllengthF = new Label(); TextField txtLengthF = new TextField(); Label lblStartDepth = new Label(); TextField txtStartDepth = new TextField(); Label lblsStart = new Label(); TextField txtsStart = new TextField(); Label lblsRule []; TextField txtsRule[][]; Label lblArrow []; Label label1 = new Label(); Label label2 = new Label(); Label label3 = new Label(); Label label4 = new Label(); Label label5 = new Label(); Label label6 = new Label(); Label label7 = new Label(); Label label8 = new Label(); public LSet(L lsystem) { super("设置参数"); localL = lsystem; try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setBackground(Color.white); this.setLayout(new BorderLayout()); Panel panUp = new Panel(); label1.setText("说明:"); label1.setBounds(new Rectangle(21, 101, 48, 18)); label2.setText("左下角(x,y)=(0,0) 右上角(x,y)=(400,400)"); label2.setBounds(new Rectangle(71, 99, 277, 20)); label3.setText("F:当前方向前画一个步距"); label3.setBounds(new Rectangle(71, 120, 152, 18)); label4.setText("+:逆时针转一个给定的转角 -:顺时针转一个给定的转角"); label4.setBounds(new Rectangle(71, 137, 314, 18)); label5.setForeground(Color.red); label5.setText("注意:规则名称为单个字母,书写时注意大小写区别"); label5.setBounds(new Rectangle(21, 176, 318, 18)); label6.setText("[:状态入栈 ]:状态出栈"); label6.setBounds(new Rectangle(74, 156, 151, 18)); label7.setText("规则名称及规则:"); label7.setBounds(new Rectangle(18, 234, 105, 18)); label8.setForeground(Color.blue); label8.setText("制作:keatskk@sina.com"); label8.setBounds(new Rectangle(238, 233, 150, 18)); this.add(panUp); panUp.setLayout(null); panUp.setBackground(Color.white); lbllengthF.setText("步距:"); lbllengthF.setBounds(new Rectangle(5, 74, 43, 18)); lblStartX.setText("起始点坐标 X(整数) :"); lblStartX.setBounds(new Rectangle(5, 23, 136, 18)); txtStartX.setBounds(new Rectangle(141, 21, 56, 22)); lblStartY.setBounds(new Rectangle(204, 23, 130, 18)); lblStartY.setText("起始点坐标 Y(整数):"); txtStartY.setBounds(new Rectangle(336, 21, 56, 22)); lblDirection.setText("起始方向角:"); lblDirection.setBounds(new Rectangle(5, 49, 79, 18)); txtDirection.setBounds(new Rectangle(141, 47, 56, 22)); lblRotation.setText("给定的转角:"); lblRotation.setBounds(new Rectangle(205, 48, 83, 18)); txtRotation.setBounds(new Rectangle(336, 46, 56, 22)); txtLengthF.setBounds(new Rectangle(141, 73, 56, 22)); lblStartDepth.setText("迭代次数(整数):"); lblStartDepth.setBounds(new Rectangle(204, 74, 112, 18)); txtStartDepth.setBounds(new Rectangle(336, 72, 55, 22)); lblsStart.setText("公理:"); lblsStart.setBounds(new Rectangle(20, 205, 47, 18)); txtsStart.setBounds(new Rectangle(73, 202, 268, 22)); panUp.add(label1, null); panUp.add(label3, null); panUp.add(label4, null); panUp.add(txtsStart, null); panUp.add(lblsStart, null); panUp.add(label5, null); panUp.add(label6, null); panUp.add(label7, null); panUp.add(lblStartX, null); panUp.add(lblDirection, null); panUp.add(lbllengthF, null); panUp.add(txtStartX, null); panUp.add(txtDirection, null); panUp.add(txtLengthF, null); panUp.add(txtStartY, null); panUp.add(txtRotation, null); panUp.add(txtStartDepth, null); panUp.add(lblStartY, null); panUp.add(lblRotation, null); panUp.add(lblStartDepth, null); panUp.add(label8, null); panUp.add(label2, null); txtStartX.setText(String.valueOf(localL.pStartX)); txtStartY.setText(String.valueOf(localL.pStartY)); txtDirection.setText(String.valueOf(localL.direction_init)); txtRotation.setText(String.valueOf(localL.rotation)); txtLengthF.setText(String.valueOf(localL.lengthF)); txtStartDepth.setText(String.valueOf(localL.StartDepth)); txtsStart.setText(localL.sStart); lblsRule = new Label [10]; txtsRule = new TextField[10][2]; lblArrow = new Label [10]; Panel panRule = new Panel(); this.add("South",panRule); GridBagLayout layout = new GridBagLayout(); panRule.setLayout(layout); GridBagConstraints constraints = new GridBagConstraints(); constraints.weightx = 0.0; constraints.weighty = 0.0; constraints.gridwidth = 1; constraints.gridheight = 1; for(int i=0;i<10;i++){ constraints.gridx=0;constraints.gridy=i; lblsRule[i] = new Label(); lblsRule[i].setText("规则"+i+":"); layout.setConstraints(lblsRule[i],constraints); panRule.add(lblsRule[i]); constraints.gridx=1;constraints.gridy=i; txtsRule[i][0]=new TextField(2); if(i<localL.ruleNumber){ txtsRule[i][0].setText(localL.sRule[i][0]); } else{ txtsRule[i][0].setText(""); } layout.setConstraints(txtsRule[i][0],constraints); panRule.add(txtsRule[i][0]); constraints.gridx=2;constraints.gridy=i; lblArrow[i]=new Label(); lblArrow[i].setText("→"); layout.setConstraints(lblArrow[i],constraints); panRule.add(lblArrow[i]); constraints.gridx=3;constraints.gridy=i; txtsRule[i][1]=new TextField(30); if (i<localL.ruleNumber){ txtsRule[i][1].setText(localL.sRule[i][1]); } else{ txtsRule[i][1].setText(""); } layout.setConstraints(txtsRule[i][1],constraints); panRule.add(txtsRule[i][1]); } Button btnConfirm = new Button(); btnConfirm.setLabel("确定"); constraints.gridx=0;constraints.gridy=11; layout.setConstraints(btnConfirm,constraints); panRule.add(btnConfirm); Button btnCancel = new Button(); btnCancel.setLabel("取消"); constraints.gridx=1;constraints.gridy=11; layout.setConstraints(btnCancel,constraints); panRule.add(btnCancel); Button btnDel = new Button(); btnDel.setLabel("全部清空"); constraints.gridx=3;constraints.gridy=11; layout.setConstraints(btnDel,constraints); panRule.add(btnDel); this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(WindowEvent e) { this_windowClosing(e); } });} void this_windowClosing(WindowEvent e) { this.hide(); this.dispose(); } public boolean action(Event ev, Object arg){ if ( ev.target instanceof Button) {//instanceof实例 String button = (String) arg; if (button.equals("确定")) { localL.pStartX=Integer.parseInt(txtStartX.getText()); localL.pStartY=Integer.parseInt(txtStartY.getText());// localL.direction=Double.valueOf(txtDirection.getText()).doubleValue(); localL.direction_init=Double.valueOf(txtDirection.getText()).doubleValue(); localL.rotation=Double.valueOf(txtRotation.getText()).doubleValue(); localL.lengthF=Double.valueOf(txtLengthF.getText()).doubleValue(); localL.StartDepth=Integer.parseInt(txtStartDepth.getText()); localL.sStart=txtsStart.getText(); int j=0; for (int i=0;i<10;i++){ if (txtsRule[i][0].getText().equals("")){ j=j+1; } else{ localL.sRule[i-j][0]=txtsRule[i-j][0].getText(); localL.sRule[i-j][1]=txtsRule[i-j][1].getText(); } } localL.ruleNumber=10-j; this.hide(); this.dispose(); localL.reinit(); } else if (button.equals("取消")) { this.hide(); this.dispose(); } else if (button.equals("全部清空")){ txtStartX.setText(""); txtStartY.setText(""); txtDirection.setText(""); txtRotation.setText(""); txtLengthF.setText(""); txtStartDepth.setText(""); txtsStart.setText(""); for(int i=0;i<10;i++){ txtsRule[i][0].setText(""); txtsRule[i][1].setText(""); } } return true; }else return false;}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -