package classes;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Lexample extends JFrame implements ActionListener,ItemListener
{
JButton ok,cancel;
JPanel p_1,p_2;
JRadioButton box_1,box_2,box_3,box_4,box_5,box_6,box_7;
JRadioButton box_8,box_9,box_10,box_11,box_12;
ButtonGroup group;
JTextArea text;
int choice;
Lsystem localsystem;
Lexample(Lsystem lsystem,String s)
{
super(s);
localsystem=lsystem;
Container con=this.getContentPane();
ok=new JButton("确定");
cancel=new JButton("取消");
group=new ButtonGroup();
p_1=new JPanel();
p_2=new JPanel();
con.setLayout(new BorderLayout());
p_1.setLayout(new GridLayout(13,1));
p_2.setLayout(new GridLayout(1,5));
text=new JTextArea();
//文本区初始化为"斜草"规则
text.setText("");
text.setBackground(Color.lightGray);
text.append("sStart =G\n");
text.append("sRule[0][0]=G\n");
text.append("sRule[0][1]=GFX[+++++GFG][-----GFG]\n");
text.append("sRule[1][0]=X\n");
text.append("sRule[1][1]=F-XF");
text.setEditable(false);
box_1=new JRadioButton("斜草",false);
group.add(box_1);
box_2=new JRadioButton("树伞",false);
group.add(box_2);
box_3=new JRadioButton("有花蕾的植物",false);
group.add(box_3);
box_4=new JRadioButton("枝",false);
group.add(box_4);
box_5=new JRadioButton("蒲公英",false);
group.add(box_5);
box_6=new JRadioButton("灌木丛",false);
group.add(box_6);
box_7=new JRadioButton("棕榈",false);
group.add(box_7);
box_8=new JRadioButton("开花的草",false);
group.add(box_8);
box_9=new JRadioButton("斜枝",false);
group.add(box_9);
box_10=new JRadioButton("杨柳",false);
group.add(box_10);
box_11=new JRadioButton("树",false);
group.add(box_11);
box_12=new JRadioButton("对称的树",false);
group.add(box_12);
choice=localsystem.exampleChoice;
//由主窗体获取当前是哪个图形规则,并将这一规则的
//图形名称设置为选种状态
switch(choice)
{
case 1: box_1.setSelected(true);
break;
case 2: box_2.setSelected(true);
break;
case 3: box_3.setSelected(true);
break;
case 4: box_4.setSelected(true);
break;
case 5: box_5.setSelected(true);
break;
case 6: box_6.setSelected(true);
break;
case 7: box_7.setSelected(true);
break;
case 8: box_8.setSelected(true);
break;
case 9: box_9.setSelected(true);
break;
case 10: box_10.setSelected(true);
break;
case 11: box_11.setSelected(true);
break;
case 12: box_12.setSelected(true);
break;
}
p_1.add(box_1);
p_1.add(box_2);
p_1.add(box_3);
p_1.add(box_4);
p_1.add(box_5);
p_1.add(box_6);
p_1.add(box_7);
p_1.add(box_8);
p_1.add(box_9);
p_1.add(box_10);
p_1.add(box_11);
p_1.add(box_12);
p_2.add(new Label());
p_2.add(ok);
p_2.add(new Label());
p_2.add(cancel);
p_2.add(new Label());
con.add(p_1,"West");
con.add(text,"Center");
con.add(p_2,"South");
box_1.addItemListener(this);
box_2.addItemListener(this);
box_3.addItemListener(this);
box_4.addItemListener(this);
box_5.addItemListener(this);
box_6.addItemListener(this);
box_7.addItemListener(this);
box_8.addItemListener(this);
box_9.addItemListener(this);
box_10.addItemListener(this);
box_11.addItemListener(this);
box_12.addItemListener(this);
ok.addActionListener(this);
cancel.addActionListener(this);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{setVisible(false);}
});
setBackground(Color.lightGray);
setSize(320,400);
setResizable(false);
//获取默认显示器的尺寸
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
//设置窗体显示位置
this.setLocation((d.width-this.getSize().width)/2,(d.height-this.getSize().width)/2);
setVisible(false);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==ok)
{
if(choice==1)//"斜草"
{
localsystem.startX=340;
localsystem.startY=20;
localsystem.initDirection=60;
localsystem.lengthF=3.3;
localsystem.rotation=-3;
localsystem.startDepth=7;
localsystem.ruleNumber=2;
localsystem.sStart="G";
localsystem.sRule[0][0]="G";
localsystem.sRule[0][1]="GFX[+++++GFG][-----GFG]";
localsystem.sRule[1][0]="X";
localsystem.sRule[1][1]="F-XF";
localsystem.exampleChoice=1;
}
if(choice==2)//"树伞"
{
localsystem.startX=240;
localsystem.startY=10;
localsystem.initDirection=90;
localsystem.lengthF=4.5;
localsystem.rotation=30;
localsystem.startDepth=5;
localsystem.ruleNumber=1;
localsystem.sStart="F";
localsystem.sRule[0][0]="F";
localsystem.sRule[0][1]="F[+F[+F][-F]F][-F[+F][-F]F]F[+F][-F]F";
localsystem.exampleChoice=2;
}
if(choice==3)//"有花蕾的植物"
{
localsystem.startX=240;
localsystem.startY=210;
localsystem.initDirection=-90;
localsystem.lengthF=9.5;
localsystem.rotation=-18;
localsystem.startDepth=13;
localsystem.ruleNumber=4;
localsystem.sStart="K";
localsystem.sRule[0][0]="S";
localsystem.sRule[0][1]="[+++G][---H]FFS";
localsystem.sRule[1][0]="G";
localsystem.sRule[1][1]="+G[-FH]F";
localsystem.sRule[2][0]="H";
localsystem.sRule[2][1]="-H[+FG]F";
localsystem.sRule[3][0]="K";
localsystem.sRule[3][1]="FSF";
localsystem.exampleChoice=3;
}
if(choice==4)//"枝"
{
localsystem.startX=240;
localsystem.startY=5;
localsystem.initDirection=90;
localsystem.lengthF=1.5;
localsystem.rotation=-25.7341;
localsystem.startDepth=6;
localsystem.ruleNumber=1;
localsystem.sStart="F";
localsystem.sRule[0][0]="F";
localsystem.sRule[0][1]="F[+F]F[-F]F";
localsystem.exampleChoice=4;
}
if(choice==5)//"蒲公英"
{
localsystem.startX=240;
localsystem.startY=10;
localsystem.initDirection=90;
localsystem.lengthF=0.37;
localsystem.rotation=30;
localsystem.startDepth=10;
localsystem.ruleNumber=2;
localsystem.sStart="Y";
localsystem.sRule[0][0]="X";
localsystem.sRule[0][1]="X[-FFF][+FFF]FX";
localsystem.sRule[1][0]="Y";
localsystem.sRule[1][1]="YFX[+Y][-Y]";
localsystem.exampleChoice=5;
}
if(choice==6)//"灌木丛"
{
localsystem.startX=300;
localsystem.startY=20;
localsystem.initDirection=90;
localsystem.lengthF=3.5;
localsystem.rotation=-30;
localsystem.startDepth=6;
localsystem.ruleNumber=1;
localsystem.sStart="F";
localsystem.sRule[0][0]="F";
localsystem.sRule[0][1]="FF-[-F+F+F]+[+F-F-F]";
localsystem.exampleChoice=6;
}
if(choice==7)//"棕榈"
{
localsystem.startX=240;
localsystem.startY=20;
localsystem.initDirection=90;
localsystem.lengthF=5.6;
localsystem.rotation=-18;
localsystem.startDepth=12;
localsystem.ruleNumber=5;
localsystem.sStart="SLFFF";
localsystem.sRule[0][0]="S";
localsystem.sRule[0][1]="[+++H][---G]TS";
localsystem.sRule[1][0]="G";
localsystem.sRule[1][1]="+H[-G]L";
localsystem.sRule[2][0]="H";
localsystem.sRule[2][1]="-G[+H]L";
localsystem.sRule[3][0]="T";
localsystem.sRule[3][1]="TL";
localsystem.sRule[4][0]="L";
localsystem.sRule[4][1]="[-FFF][+FFF]F";
localsystem.exampleChoice=7;
}
if(choice==8)//"开花的草"
{
localsystem.startX=240;
localsystem.startY=10;
localsystem.initDirection=90;
localsystem.lengthF=3;
localsystem.rotation=-30;
localsystem.startDepth=8;
localsystem.ruleNumber=2;
localsystem.sStart="G";
localsystem.sRule[0][0]="G";
localsystem.sRule[0][1]="[+FGF][-FGF]XG";
localsystem.sRule[1][0]="X";
localsystem.sRule[1][1]="XFX";
L系统分形艺术程序代码
4星 · 超过85%的资源 需积分: 50 57 浏览量
2008-07-14
16:52:59
上传
评论 3
收藏 12KB RAR 举报
hotdogzsq
- 粉丝: 2
- 资源: 11
最新资源
- 探索tecreate:软件开发的未来之星.zip
- 打标机项目C#源码连接扫码
- 基于SSM的房屋租赁系统的设计与实现
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈