生成器模式代码.docVIP

  • 1
  • 0
  • 约2.84千字
  • 约 5页
  • 2018-03-07 发布于河南
  • 举报
生成器模式代码

import javax.swing.*; public class Application{ public static void main(String args[]){ Builder builder=new ConcreteBuilderOne(); Director director=new Director(builder); JPanel panel=director.constructProduct(); JFrame frameOne=new JFrame(); frameOne.add(panel); frameOne.setBounds(12,12,200,120); frameOne.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frameOne.setVisible(true); builder=new ConcreteBuilderTwo(); director=new Director(builder); panel=director.constructProduct(); JFrame frameTwo=new JFrame(); frameTwo.add(panel); frameTwo.setBounds(212,12,200,120); frameTwo.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frameTwo.setVisible(true); } } import javax.swing.*; public interface Builder{ public abstract void buildButton(); public abstract void buildLabel(); public abstract void buildTextField(); public abstract JPanel getPanel(); } import javax.swing.*; public class ConcreteBuilderOne implements Builder{ private PanelProduct panel; //需要创建的容器 ConcreteBuilderOne(){ panel=new PanelProduct(); } public void buildButton(){ panel.button=new JButton(按钮); } public void buildLabel(){ panel.label=new JLabel(标签); } public void buildTextField(){ panel.textField=new JTextField(文本框); } public JPanel getPanel(){ panel.add(panel.button); //与ConcreteBuilderTwo添加组件的顺序的不同 panel.add(panel.label); panel.add(panel.textField); return panel; } } import javax.swing.*; public class ConcreteBuilderTwo implements Builder{ private PanelProduct panel; //需要创建的容器 ConcreteBuilderTwo(){ panel=new PanelProduct(); } public void buildButton(){ panel.button=new JButton(button); } public void buildLabel(){ panel.label=

文档评论(0)

1亿VIP精品文档

相关文档