📄 guibuilder.java
字号:
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 + -