wicket一些基础控件代码

努力学习中,没什么总结,仅限记录!wicket对所有控件设定都存放与Server,不知好是不好,感觉有些不靠谱!

  1. package com.wicket.page;
  2. import java.awt.Graphics2D;
  3. import java.awt.image.renderable.RenderableImage;
  4. import java.io.IOException;
  5. import java.io.Serializable;
  6. import java.util.ArrayList;
  7. import java.util.Date;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import org.apache.wicket.Component;
  12. import org.apache.wicket.Page;
  13. import org.apache.wicket.PageParameters;
  14. import org.apache.wicket.behavior.IBehavior;
  15. import org.apache.wicket.markup.html.WebMarkupContainer;
  16. import org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup;
  17. import org.apache.wicket.markup.html.WebPage;
  18. import org.apache.wicket.markup.html.basic.Label;
  19. import org.apache.wicket.markup.html.basic.MultiLineLabel;
  20. import org.apache.wicket.markup.html.border.Border;
  21. import org.apache.wicket.markup.html.border.BoxBorder;
  22. import org.apache.wicket.markup.html.border.Border.BorderBodyContainer;
  23. import org.apache.wicket.markup.html.form.Button;
  24. import org.apache.wicket.markup.html.form.Check;
  25. import org.apache.wicket.markup.html.form.CheckBox;
  26. import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
  27. import org.apache.wicket.markup.html.form.CheckGroup;
  28. import org.apache.wicket.markup.html.form.CheckGroupSelector;
  29. import org.apache.wicket.markup.html.form.DropDownChoice;
  30. import org.apache.wicket.markup.html.form.Form;
  31. import org.apache.wicket.markup.html.form.IChoiceRenderer;
  32. import org.apache.wicket.markup.html.form.ListChoice;
  33. import org.apache.wicket.markup.html.form.ListMultipleChoice;
  34. import org.apache.wicket.markup.html.form.PasswordTextField;
  35. import org.apache.wicket.markup.html.form.Radio;
  36. import org.apache.wicket.markup.html.form.RadioChoice;
  37. import org.apache.wicket.markup.html.form.RadioGroup;
  38. import org.apache.wicket.markup.html.form.SubmitLink;
  39. import org.apache.wicket.markup.html.form.TextArea;
  40. import org.apache.wicket.markup.html.form.TextField;
  41. import org.apache.wicket.markup.html.form.upload.FileUpload;
  42. import org.apache.wicket.markup.html.form.upload.FileUploadField;
  43. import org.apache.wicket.markup.html.form.validation.IFormValidator;
  44. import org.apache.wicket.markup.html.image.Image;
  45. import org.apache.wicket.markup.html.image.resource.RenderedDynamicImageResource;
  46. import org.apache.wicket.markup.html.include.Include;
  47. import org.apache.wicket.markup.html.link.BookmarkablePageLink;
  48. import org.apache.wicket.markup.html.link.ExternalLink;
  49. import org.apache.wicket.markup.html.link.IPageLink;
  50. import org.apache.wicket.markup.html.link.Link;
  51. import org.apache.wicket.markup.html.link.PageLink;
  52. import org.apache.wicket.markup.html.list.ListItem;
  53. import org.apache.wicket.markup.html.list.ListView;
  54. import org.apache.wicket.markup.html.list.PageableListView;
  55. import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
  56. import org.apache.wicket.markup.html.panel.ComponentFeedbackPanel;
  57. import org.apache.wicket.markup.html.panel.FeedbackPanel;
  58. import org.apache.wicket.model.CompoundPropertyModel;
  59. import org.apache.wicket.model.IModel;
  60. import org.apache.wicket.model.Model;
  61. import org.apache.wicket.model.PropertyModel;
  62. import org.apache.wicket.util.file.File;
  63. import org.apache.wicket.util.lang.Bytes;
  64. import com.wicket.model.BookModel;
  65. public class HelloWorldPage extends WebPage {
  66.     
  67.     private static final long SVU = 1L;
  68.     private int count = 0;
  69.     
  70.     public HelloWorldPage(){
  71.         //信息输出
  72.         Label label = new Label("message","Hello world!");
  73.         this.add(label);
  74.         
  75.         MultiLineLabel linelabel = new MultiLineLabel("multimessage","Hello /nworld");
  76.         this.add(linelabel);
  77.         
  78.         //容器
  79.         WebMarkupContainerWithAssociatedMarkup panel =
  80.             new WebMarkupContainerWithAssociatedMarkup("panel");
  81.         Label label1 = new Label("panel_label","这是被panel容纳进来的Label!");
  82.         panel.add(label1);
  83.         this.add(panel);
  84.         
  85.         WebMarkupContainer webpanel =
  86.             new WebMarkupContainer("webpanel");
  87.         Label label2 = new Label("webpanel_label","这是被webpanel容纳进来的Label!");
  88.         webpanel.add(label2);
  89.         this.add(webpanel);
  90.         
  91.         Border border = new BoxBorder("border");
  92.         Label label3 = new Label("border_label","这是被border容纳的label");
  93.         border.add(label3);
  94.         this.add(border);
  95.         
  96.         this.add(new Include("include","inc/include.html"));
  97.         
  98.         //超级链接控件
  99.         Link link = new Link("link") {@Override
  100.         public void onClick() {
  101.             count++;
  102.         }};
  103.         
  104.         link.add(new Label("count",new Model(){
  105.             public String getObject(){
  106.                 return count+"";
  107.             }
  108.         }));
  109.         this.add(link);
  110.         
  111.         ExternalLink externallink = new ExternalLink
  112.             ("externallink","http://www.baidu.com","百度");
  113.         this.add(externallink);
  114.         
  115.         PageLink pagelink = new PageLink("pagelink",new IPageLink(){
  116.             public Class<? extends Page> getPageIdentity() {
  117.                 return TestPageLink.class;
  118.             }
  119.             public Page getPage(){
  120.                 return new TestPageLink();
  121.             }
  122.         }); 
  123.         this.add(pagelink);
  124.         
  125.         PageParameters pps = new PageParameters();
  126.         pps.put("id"1);
  127.         BookmarkablePageLink bmplink =
  128.             new BookmarkablePageLink("bookmarkablepagelink",TestPageLink.class,pps);
  129.         this.add(bmplink);
  130.         
  131.         //表单输入控件
  132.         final FeedbackPanel feed = new FeedbackPanel("errmsg");
  133.         
  134.         //form表单的button组件
  135.         Form form = new Form("myform"){
  136.             protected void onSubmit(){
  137.                 feed.info(loadonSubmit("你提交了button表单"));
  138.             }
  139.         };
  140.         
  141.         
  142.         Button button1  = new Button("button1"){
  143.             public void onSubmit(){
  144.                 feed.info(loadonSubmit("你按下了button1"));
  145.             }
  146.         };
  147.         
  148.         Button button2  = new Button("button2"){
  149.             public void onSubmit(){
  150.                 feed.info(loadonSubmit("你按下了button2"));
  151.             }
  152.         };
  153.         
  154.         form.add(button1);
  155.         form.add(button2);
  156.         this.add(feed);
  157.         this.add(form);
  158.         
  159.         //form表单的Link组件
  160.         final FeedbackPanel feed1 = new FeedbackPanel("errmsg1");
  161.         
  162.         Form linkform = new Form("myform1"){
  163.             protected void onSubmit(){
  164.                 feed1.info(loadonSubmit("你提交了linkform表单"));
  165.             }
  166.         };
  167.         
  168.         SubmitLink submitlink = new SubmitLink("submit_form_link"){
  169.             public void onSubmit(){
  170.                 feed1.info(loadonSubmit("你按下了linkform的内部提交"));
  171.             }
  172.         };
  173.         
  174.         SubmitLink submitlink1 = new SubmitLink("submit_link",linkform){
  175.             public void onSubmit(){
  176.                 feed1.info(loadonSubmit("你按下了linkform的外部提交"));
  177.             }
  178.         };
  179.         
  180.         linkform.add(submitlink);
  181.         this.add(submitlink1);
  182.         this.add(feed1);
  183.         this.add(linkform);
  184.         
  185.         //文本输入控件
  186.         //只允许输入数字,且不能为空,默认值为"请输入测试字符"
  187.         TextField text = new TextField("textload",Integer.class);
  188.         text.setLabel(new Model("请输入测试字符"));
  189.         text.setRequired(true);
  190.         final ComponentFeedbackPanel feed2 = new ComponentFeedbackPanel("errmsg2",text);
  191.         Form textform = new Form("textform"){           
  192.             protected void onSubmit(){
  193.                 feed2.info(loadonSubmit("你提交了textform表单"));
  194.             }
  195.         };
  196.         textform.add(text);
  197.         this.add(feed2);
  198.         this.add(textform);
  199.         
  200.         //密码输入控件
  201.         //只允许输入数字,且不能为空,默认值为"请输入测试字符"
  202.         PasswordTextField textpass = new PasswordTextField("text_pass");
  203.         final FeedbackPanel feed3 = new FeedbackPanel("errmsg3");
  204.         Form passform = new Form("passform"){           
  205.             protected void onSubmit(){
  206.                 feed3.info(loadonSubmit("你提交了passform表单"));
  207.             }
  208.         };
  209.         
  210.         passform.add(textpass);
  211.         this.add(feed3);
  212.         this.add(passform);
  213.         
  214.         //多行文本输入
  215.         TextArea textarea = new TextArea("textarea");
  216.         this.add(textarea);
  217.         
  218.         //选择框
  219.         CheckBox checkbox = new CheckBox("checkboxbool");
  220.         this.add(checkbox);
  221.         
  222.         //多项选择框     
  223.         List<String> list = new ArrayList<String>();
  224.         list.add("1");
  225.         list.add("2");
  226.         list.add("3");
  227.         final HashMap<String, String> map = new HashMap<String, String>();
  228.         map.put("1","语文");
  229.         map.put("2","数学");
  230.         map.put("3","英语");
  231.         //实现IChoiceRenderer接口以保存checkbox的显示文字与值
  232.         IChoiceRenderer renderer = new IChoiceRenderer(){
  233.             public Object getDisplayValue(Object object){
  234.                 return map.get(object);
  235.             }
  236.             public String getIdValue(Object arg0, int arg1) {
  237.                 return null;
  238.             }
  239.         };
  240.         
  241.         CheckBoxMultipleChoice onlysites =
  242.             new CheckBoxMultipleChoice("sites",list,renderer);
  243.         
  244.         
  245.         List ALLSITES = new ArrayList();
  246.         final Map ALLNAMES = new HashMap();
  247.         
  248.         ALLSITES.add("1");
  249.         ALLSITES.add("2");
  250.         ALLSITES.add("3");
  251.         ALLNAMES.put("1""语文");
  252.         ALLNAMES.put("2""数学");
  253.         ALLNAMES.put("3""英语");
  254.         Form allcheckform = new Form("allcheckform");
  255.         
  256.         CheckGroup group = new CheckGroup("allcheckgroup",new ArrayList());
  257.         
  258.         group.add(new CheckGroupSelector("allcheckgroupselector"));
  259.         ListView allsites = new ListView("allsites", ALLSITES) {
  260.             protected void populateItem(ListItem item) {
  261.                 Object object=item.getModelObject();
  262.                 item.add(new Check("allcheck"new
  263.                 Model(Integer.toString(item.getIndex()))));
  264.                 item.add(new Label("allcheckname",new Model((Serializable) ALLNAMES.get(object))));
  265.             }
  266.         };
  267.         
  268.         this.add(onlysites);
  269.         group.add(allsites);
  270.         allcheckform.add(group);
  271.         this.add(allcheckform);
  272.         
  273.         //下拉框
  274.         DropDownChoice dropdownchoice =
  275.             new DropDownChoice("dropsites",ALLSITES,renderer);
  276.         this.add(dropdownchoice);
  277.         
  278.         //单选列表框     
  279.         ListChoice listchoice =
  280.             new ListChoice("multiple",ALLSITES,renderer);
  281.         this.add(listchoice);
  282.         
  283.         //单选组合框     
  284.         ListMultipleChoice alllistchoice =
  285.             new ListMultipleChoice("allmultiple",ALLSITES,renderer);
  286.         this.add(alllistchoice);
  287.         
  288.         RadioChoice radio =
  289.             new RadioChoice("onlyradio",ALLSITES,renderer);
  290.         this.add(radio);
  291.         
  292.         //单选增强组合框
  293.         Form radioform = new Form("radioform");
  294.         add(radioform);
  295.         RadioGroup radiogroup=new RadioGroup("radiogroup");
  296.         radioform.add(radiogroup);
  297.         ListView radiosites = new ListView("radiosites", ALLSITES) {
  298.             protected void populateItem(ListItem item) {
  299.             Object object=item.getModelObject();
  300.             item.add(new Radio("radioradio"new Model(Integer.toString(item.getIndex()))));
  301.             item.add(new Label("radioname",new Model((Serializable) ALLNAMES.get(object))));
  302.         };
  303.         };
  304.         radiogroup.add(radiosites);
  305.         
  306.         //静态图像
  307.         Image staticimg = new Image("staticimg","img/mks.jpg");
  308.         this.add(staticimg);
  309.         
  310.         //动态图像
  311.         Image dynameicimg = new Image("dynameicimg",
  312.                 new RenderedDynamicImageResource(200,100){
  313.                     protected boolean render(Graphics2D graphics) {
  314.                         graphics.drawString("看看生成以后的样子"5050);
  315.                         return true;
  316.                     }
  317.             
  318.             }
  319.         );      
  320.         this.add(dynameicimg);
  321.         
  322.         //文件上传
  323.         final FileUploadField fileup = new FileUploadField("upfileload");
  324.         Form upfileform = new Form("upfileform"){
  325.             protected void onSubmit(){
  326.                 final FileUpload upload = fileup.getFileUpload();
  327.                 if(upload!=null){
  328.                     try {
  329.                         upload.writeTo(new File("d://load//1.txt"));
  330.                     } catch (IOException e) {
  331.                         e.printStackTrace();
  332.                     }
  333.                 }
  334.                 super.onSubmit();
  335.             }
  336.         };
  337.         upfileform.add(fileup);
  338.         upfileform.setMultiPart(true);
  339.         upfileform.setMaxSize(Bytes.kilobytes(1000));
  340.         this.add(upfileform);
  341.         
  342.         //数据列表
  343.         ListView listView = new ListView("listView", ALLSITES) {
  344.             protected void populateItem(ListItem item) {
  345.                 String name = (String) ALLNAMES.get(item.getModelObject());
  346.                 item.add(new Label("name", name));
  347.                 item.add(new ExternalLink("url", (String) item.getModelObject()));
  348.                 }
  349.         };
  350.         this.add(listView);
  351.         
  352.     }
  353.     
  354.     public final String loadonSubmit(String str){
  355.         String backstr = "";
  356.         if(this.getRequest().getParameter("uname") == null)
  357.             backstr = str + ";" + "请输入字符";
  358.         else
  359.             backstr = str + ";" + "你输入的字符为:" + this.getRequest().getParameter("uname");
  360.         
  361.         return backstr;
  362.     }
  363. }
程序下载: http://download.csdn.net/source/912935
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值