⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guibuilder.java

📁 gui图形界面代码生成器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
							new ItemFrame(tem.item);
						}
					}
				}
			}
        	
        });
        JLabel lbl_tab =new JLabel("选项卡");
        lbl_tab.setBounds(4, 185, 55, 21);
        btn_tab=new JButton("添加卡片");
        btn_tab.setBounds(55,185,115,22);
        btn_tab.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e) 
			{
				if(focusCMP!=null)
				{
					if(focusCMP.sort==SORT.TABBEDPANE)
					{
						ItemClass tem=null;
						if(item.get(focusCMP)==null)
						{
							new ItemFrame(null);
						}
						else
						{
							tem=item.get(focusCMP);
							new ItemFrame(tem.item);
						}
					}
				}
			}
		});
        JLabel lbl_list=new JLabel("列表");
        lbl_list.setBounds(4, 213, 55, 21);
        btn_list=new JButton("添加项");
        btn_list.setBounds(55,213,115,22);
        btn_list.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e) 
			{
				if(focusCMP!=null)
				{
					if(focusCMP.sort==SORT.LIST)
					{
						ItemClass tem=null;
						if(item.get(focusCMP)==null)
						{
							new ItemFrame(null);
						}
						else
						{
							tem=item.get(focusCMP);
							new ItemFrame(tem.item);
						}
					}
				}
			}
		});
        attributePane.add(lbl_list);
        attributePane.add(btn_list);
        attributePane.add(btn_tab);
        attributePane.add(lbl_tab);
        attributePane.add(label_1);
        attributePane.add(label_2);
        attributePane.add(label_3);
        attributePane.add(label_4);
        attributePane.add(label_5);
        attributePane.add(text_1);
        attributePane.add(text_2);
        attributePane.add(cbo_1);
        attributePane.add(cbo_2);
        attributePane.add(this.lbl6);
        attributePane.add(this.btn2);
        ////////////////////////////////////////////////
        jp.add(attributePane);
        setContentPane(jp);
     
        setVisible(true);
        this.setResizable(false);
        /////////////////////////////////////////////////////////////////////////////////////////////////
    }
    private void init()
    {
    	componentPane=new MyPanel(this);
    	componentPane.setBounds(0,0,113,615);
    	centerPane=new JPanel();
    	centerPane.setBounds(115,0,700,615);

    	centerPane.setLayout(new BorderLayout());
        tab.add("视图", drawPane);
        JScrollPane js=new JScrollPane();
        js.getViewport().add(tea);
        tea.setFont(new Font("宋体",Font.BOLD,16));
        tea.setTabSize(3);
        tea.setForeground(Color.blue);
        codePane.setLayout(new BorderLayout());
        codePane.add(js);
        tab.add("代码",codePane);
        tab.addChangeListener(this);
    	centerPane.add(tab);

    	//codePane.setBackground(Color.pink);
    	
        attributePane=new JPanel();
        attributePane.setBounds(817,0,171,615);
    }
    
    public void cross()
	{
		this.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
	}
	public void changesize()
	{
		this.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));
	}
	public void deletecross()
	{
		this.setCursor(Cursor.getDefaultCursor());
	}
	
	boolean findRange(Point2D e)
	{
		if(range.dragArea.contains(e))
		{
			return true;
		}
		return false;
	}
	MyComponent findComponent(Point2D e)
	{
		for(int i=0;i<cmp.size();i++)
		{
			if(cmp.get(i).dragSize.contains(e))
			{
				setSizeFlag=true;
				return cmp.get(i);
			}
			if(cmp.get(i).border.contains(e))
			{
				setSizeFlag=false;
				return cmp.get(i);
			}
		}
		return null;
	}
	boolean setBorderLocation()
	{
		for(int x=0;x<COL;x++)
		{
			for(int y=0;y<ROW;y++)
			{
				if(range.dragArea.contains(point[x][y].point))
				{
					
					range.setRange(point[x][y].point);
					rangeLastLocation=point[x][y].point;
					repaint();
				//	System.out.println(x +"   "+y);
					
					return true;
				}
			}
		}
		range.setRange(rangeLastLocation);
		repaint();
		return false;
	}
	
	MyComponent findComponentById(int id)
	{
		for(int i=0;i<cmp.size();i++)
		{
			if(cmp.get(i).id==id)
			{
				return cmp.get(i);
			}
		}
		return null;
	}
	
	String getName(MyComponent myComponent)
	{
		int count=1;
		for(int i=0;i<cmp.size();i++)
		{
			if(cmp.get(i).sort==myComponent.sort)
			{
				if(count<=cmp.get(i).sortID)
				{
					count=cmp.get(i).sortID+1;
				}
			}
		}
		myComponent.sortID=count;
		return SORT.NAME[myComponent.sort]+count;
	}
	
	class FocusHandler implements FocusListener
	{
		public void focusGained(FocusEvent e)
		{
			
		}

		public void focusLost(FocusEvent e) 
		{
			setCmpName(focusCMP,text_1.getText());
			setText(focusCMP,text_2.getText());
		}
	}
	
	String createCode()
	{
		String code1="import javax.swing.event.*;\nimport javax.swing.*;\n"+
		"import java.awt.*;\n"+"import java.awt.event.*;\n\n"+
		"class MyFrame extends JFrame\n"+
		"{\n";///////////////差后扩号
		String code2="";
		String code20="";///////////////////////////////////////  addListener
		String code21="";////////////////////////
		String code200="";///////////////////////////////        addItem
		String code3="";////////////////////////////////   jp.add()
		String code4="\tprivate void init()\n\t{\n";/////////////////////////////////  init()
		for(int i=0;i<cmp.size();i++)
		{
			code2+="\tprivate "+SORT.CMP[cmp.get(i).sort]+" "+cmp.get(i).name+" =null;\n";
			
			if(this.listener.get(cmp.get(i))!=null)
			{
				ArrayList<Integer> lis=this.listener.get(cmp.get(i));
				for(int j=0;j<lis.size();j++)
				{
					code20+="\t\t"+cmp.get(i).name+".add"+this.LISTENER.NAME[lis.get(j)]+"(new "+cmp.get(i).name+"_"+this.LISTENER.NAME[lis.get(j)]+"());\n";
					code21+="\tclass "+cmp.get(i).name+"_"+this.LISTENER.NAME[lis.get(j)]+METHOD.TEXT[lis.get(j)];
				}
			}
			
			if(this.item.get(cmp.get(i))!=null)
			{
				ItemClass te1=this.item.get(cmp.get(i));
				ArrayList<String> tem=te1.item;
				for(int j=0;j<tem.size();j++)
				{
					if(cmp.get(i).sort==SORT.COMBOBOX)
					{
						code200+="\t\t"+cmp.get(i).name+".addItem(\""+tem.get(j)+"\");\n";
					}
					else if(cmp.get(i).sort==SORT.JMENUBAR)
					{
						
						code200+="\t\tJMenu "+cmp.get(i).name+"_item"+(j+1)+" =new JMenu(\""+tem.get(j)+"\");\n" ;
						code200+="\t\t"+cmp.get(i).name+".add("+cmp.get(i).name+"_item"+(j+1)+");\n";
						if(itemsitem.get(tem.get(j))!=null)
						{
							ItemClass mui=itemsitem.get(tem.get(j));
							code200+="\t\t"+cmp.get(i).name+"_item"+(j+1)+".setText(\""+mui.codeString+"\");\n";
							for(int k=0;k<mui.item.size();k++)
							{
								String temStr=mui.item.get(k);
								boolean hasListener=false;
								if(temStr.charAt(temStr.length()-1)=='&')
								{
									temStr=temStr.substring(0,temStr.length()-1);
									hasListener=true;
								}
								code200+="\t\tJMenuItem "+cmp.get(i).name+"_item"+(j+1)+"_it"+(k+1)+
								" =new JMenuItem(\""+temStr+"\");\n";
								if(hasListener)
									code200+="\t\t"+cmp.get(i).name+"_item"+(j+1)+"_it"+(k+1)+".addActionListener(new ActionListener()\n\t\t{\n"+
									"\t\t\t"+"public void actionPerformed(ActionEvent e)\n\t\t\t{\n\t\t\t"+
									"\t\t\t\tSystem.out.println(98765);\n\t\t\t"+"}\n\t\t});\n";
								code200+="\t\t"+cmp.get(i).name+"_item"+(j+1)+".add("+cmp.get(i).name+"_item"+(j+1)+"_it"+(k+1)+");\n";
							}
						}
					}
					else if(cmp.get(i).sort==SORT.TABBEDPANE)
					{
						code200+="\t\t"+cmp.get(i).name+".add(\""+tem.get(j)+"\",new JPanel());\n";
					}
				}
			}
			code3+="\t\tjp.add("+cmp.get(i).name+");\n";
			Rectangle2D tem2=cmp.get(i).border;
			int x=(int)tem2.getX();
			int y=(int)tem2.getY();
			int w=(int)tem2.getWidth();
			int h=(int )tem2.getHeight();
			String temStr="";
			if(cmp.get(i).sort<=5)
			{
				temStr="\""+cmp.get(i).text+"\"";
			}
			
			if(cmp.get(i).sort==SORT.LIST)
			{
				ArrayList<String> list001=this.item.get(cmp.get(i)).item;
				temStr="new String[]{";
				for(int k=0;k<list001.size()-1;k++)
				{
					temStr+="\""+list001.get(k)+"\",";
				}
				temStr+="\""+list001.get(list001.size()-1)+"\"}";
			}
			code4+="\t\t"+cmp.get(i).name+"=new "+SORT.CMP[cmp.get(i).sort]+"("+temStr+");\n";
			code4+="\t\t"+cmp.get(i).name+".setBounds("+x+","+y+","+w+","+h+");\n";
		}
		code4+="\t}\n";
		Rectangle2D tem1=this.range.border;
		int w=(int)tem1.getWidth();
		int h=(int)tem1.getHeight();
		String code50=
			"\tpublic MyFrame()\n"+
			"\t{" +"\n\t\tsuper(\"MyFrame\");\n"+
			"\t\tthis.setDefaultCloseOperation(3);\n"+
			"\t\tsetBounds(200,150,"+w+","+(h+20)+");\n"+
			"\t\tJPanel jp=new JPanel();\n"+
			"\t\tjp.setLayout(null);\n"+
			"\t\tinit();\n";//////////////////差后扩号
		
		String codingString=code1+code2+code50+code20+code200+code3+"\t\tsetContentPane(jp);\n"+
        "\t\tsetVisible(true);\n\t}\n"+code4+code21+"}";
		
		return codingString;
	}
	
	public void stateChanged(ChangeEvent e)
	{
		if(this.tab.getSelectedIndex()==1)
		{
			this.tea.setText(this.createCode());
			
			this.text_1.setEditable(false);
			this.text_2.setEditable(false);
			this.cbo_1.setEnabled(false);
			this.label_4.setEnabled(false);
			this.btn2.setEnabled(false);
			this.cbo_2.setEnabled(false);
			this.btn_tab.setEnabled(false);
			this.btn_list.setEnabled(false);
		}
		else
		{
			this.text_1.setEditable(true);
			this.text_2.setEditable(true);
			this.cbo_1.setEnabled(true);
			this.label_4.setEnabled(true);
			this.btn2.setEnabled(true);
			this.cbo_2.setEnabled(true);
			this.btn_tab.setEnabled(true);
			this.btn_list.setEnabled(true);
		}
	}
	
}

class MyPanel extends JPanel implements MouseListener,MouseMotionListener
{
	private static final long serialVersionUID = 100L;
	Graphics2D g=null;
	GUIBuilder outer=null;
	MyPanel(GUIBuilder e)
	{
		outer=e;
		this.addMouseListener(this);
		this.addMouseMotionListener(this);
	}
	int find(Point2D p)
	{
		for(int i=0;i<outer.NUM;i++)
		{
			if(outer.components[i].contains(p))
			{
				return i;
			}
		}
		return -1;
	}
	public void paintComponent(Graphics e)
	{
		super.paintComponent(e);
		g=(Graphics2D)e;
		outer.drawComponents(g);
	}
	public void mouseClicked(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mousePressed(MouseEvent e)
	{
		outer.willPut=find(e.getPoint());
		outer.focusCMP=null;
		//System.out.println(outer.willPut);
		outer.label_1.setText("");
		outer.text_1.setText("");
		outer.text_2.setText("");
		outer.cbo_1.removeAllItems();
		outer.repaint();
	}
	public void mouseReleased(MouseEvent e) 
	{
		
	}
	public void mouseDragged(MouseEvent e) {}
	public void mouseMoved(MouseEvent e) 
	{
		if(find(e.getPoint())!=-1)
		{
			outer.cross();
		}
		else
		{
			outer.deletecross();
		}
	}
}

class MainPane extends JPanel implements MouseListener,MouseMotionListener
{

	private static final long serialVersionUID = 199L;
	Graphics2D g=null;
	GUIBuilder outer=null;
	Color b=new Color(100,200,100);
	MainPane(GUIBuilder e)
	{
		outer=e;
		this.addMouseListener(this);
		this.addMouseMotionListener(this);
		this.setBackground(Color.white);
	}
	public void paintComponent(Graphics e)
	{
		super.paintComponent(e);
		g=(Graphics2D)e;
		outer.range.draw(g);
		outer.drawLine(g);
		g.setColor(b);
		outer.drawViewComponent(g);
	}
	
	public void mouseClicked(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	
	public void mousePressed(MouseEvent e) 
	{
		outer.label_1.requestFocus();///////////////////////////////////////////////////
		
		int count =e.getClickCount();
		if(outer.willPut==-1)
		{
			if(outer.findRange(e.getPoint()))
			{
				outer.dragRange=true;
			}
			else 
			{
				
				if((outer.dragingSize=outer.findComponent(e.getPoint()))!=null)
				{
					if(count<2)
					{
						if(outer.setSizeFlag==true)
						{
							outer.focusCMP=outer.dragingSize;
						}
						else
						{
							outer.focusCMP=outer.dragingSize;
							outer.draging=outer.dragingSize;
							outer.dragingSize=null;
						}
						outer.label_1.setText("   "+outer.SORT.CMP[outer.focusCMP.sort]);
						outer.text_1.setText(outer.focusCMP.name);
						outer.text_2.setText(outer.focusCMP.text);
						int st=outer.focusCMP.sort;
						ArrayList<Integer> temlist=outer.RELATION.CMP[st];
						outer.cbo_1.removeAllItems();
						for(int i=0;i<temlist.size();i++)
						{
							outer.cbo_1.addItem(outer.LISTENER.NAME[temlist.get(i)]);
						}
					}
					else
					{
						System.out.println(outer.focusCMP.id);
						//System.out.println(outer.itemsitem.size());
						if(outer.focusCMP.sort==outer.SORT.JMENUBAR)
						{
							GUIBuilder.ItemClass itm=outer.item.get(outer.focusCMP);
							if(itm!=null)
							{
								ArrayList<String>temList=itm.item;
								for(int k=0;k<temList.size();k++)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -