- 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)