java Swing 编写需要用的一些常用组件,求代码~~
发布时间:2025-05-25 00:38:45 发布人:远客网络
一、java Swing 编写需要用的一些常用组件,求代码~~
1、这个看你设计成什么样子,都有不同的需求,代码只能参考一下。
2、package com.hengjun.hjropcs.commons;
3、import javax.swing.ComboBoxModel;
4、import javax.swing.JTextField;
5、import com.hengjun.commons.lang.Func1;
6、import com.hengjun.commons.lang.HJCollectionUtils;
7、import com.hengjun.commons.swing.DimensionUtility;
8、import com.hengjun.commons.swing.HJComboBoxUtils;
9、import com.hengjun.commons.swing.combobox.decorators.SpellComboBoxDecorator;
10、import com.hengjun.commons.ui.DisplayData;
11、import com.hengjun.framework.enums.EDataStatus;
12、import com.hengjun.framework.framework_core.model.BaseModel;
13、import com.hengjun.framework.framework_core.support.constant.MessageConstants;
14、import com.hengjun.hjrop.model.dbmodel.RopRegion;
15、import com.hengjun.hjrop.model.dbmodel.RopStation;
16、import com.hengjun.hjropcs.cache.CacheRegion;
17、import com.hengjun.hjropcs.commons.hjcombobox.Builder;
18、import com.hengjun.hjropcs.commons.hjcombobox.RegionComboBox.CBuilder;
19、import com.hengjun.hjropcs.core.ui.FullSizeComboBoxUI;
20、public class HJCommonCombox extends JComboBox{
21、//批量修改用,=1带拼音搜索,批量修改时第一项插入一个new对象,而不是CommonObject中的对象;
22、//因为点击+-号时可以直接更改index=0项的text即可,效率高
23、 public final static int MULTI_MODIFY_WITH_SPELL=1;
24、 public final static int MULTI_MODIFY_WITHOUT_SPELL=2;
25、//active数据,不带有第一行的empty
26、 public final static int ACTIVE_RECORDS_WITH_SPELL_WITHOUT_EMPTY=3;
27、// public static final int COMBOBOX_MAX_WIDTH= 170;
28、 private boolean isSupportSpell=false;
29、//产生一个新的数据model,第一条数据为new DisplayData(null,"","")
30、 protected List produceNewModelData(List activeViewForMulti){
31、 if(activeViewForMulti==null|| activeViewForMulti.size()==0){
32、 List ret=new ArrayList(activeViewForMulti);
33、 ret.set(0, new DisplayData(null,"",""));
34、 public boolean isSupportSpell(){
35、 public void setSRTDimension(){
36、 this.setMaximumSize(DimensionUtility.SRTDimension);
37、 this.setMinimumSize(DimensionUtility.SRTDimension);
38、 public void setSRTDimension(Dimension dimension){
39、 this.setMaximumSize(dimension);
40、 this.setMinimumSize(dimension);
41、 public void setSupportSpell(boolean isSupportSpell){
42、 this.isSupportSpell= isSupportSpell;
43、*默认创建的是含有所有active数据的下拉框
44、 this.setMaximumSize(DimensionUtility.componentDimension);
45、 this.setMinimumSize(DimensionUtility.componentDimension);
46、 public HJCommonCombox(Builder builder){
47、 List model=getActiveModelData();
48、//如果是批量修改用,基于active数据
49、 model=getActiveMultiModelData();
50、 model= produceNewModelData(model);
51、 model=getAllModelData();//getActiveModelData;
52、 HJComboBoxUtils.showList(this, model,1);
53、 HJComboBoxUtils.showList(this, model);
54、 if(builder.isSupportSpell()){
55、 SpellComboBoxDecorator scb= new SpellComboBoxDecorator(this);
56、 this.setMaximumSize(DimensionUtility.componentDimension);
57、 this.setMinimumSize(DimensionUtility.componentDimension);
58、//根据filter名称和builder,返回List
59、 public List<DisplayData> getListData(String filter,Builder builder){
60、 List model=getFilterActiveModelData(filter);
61、//如果是批量修改用,基于active数据
62、 model=getFilterActiveMultiModelData(filter);
63、 model= produceNewModelData(model);
64、 model=getFilterAllModelData(filter);//getActiveModelData;
65、 if(!HJCollectionUtils.isEmpty(model)){
66、 model=model.subList(1,model.size());
67、// HJComboBoxUtils.showList(this, model);
68、 public HJCommonCombox(String filter,Builder builder){
69、 List model=getFilterActiveModelData(filter);
70、//如果是批量修改用,基于active数据
71、 model=getFilterActiveMultiModelData(filter);
72、 model= produceNewModelData(model);
73、 model=getFilterAllModelData(filter);//getActiveModelData;
74、 HJComboBoxUtils.showList(this, model,1);
75、 HJComboBoxUtils.showList(this, model);
76、 if(builder.isSupportSpell()){
77、 SpellComboBoxDecorator scb= new SpellComboBoxDecorator(this);
78、 this.setMaximumSize(DimensionUtility.componentDimension);
79、 this.setMinimumSize(DimensionUtility.componentDimension);
80、 setUI(new FullSizeComboBoxUI());
81、*@param isSupportSpell is true;表示支持拼音搜索
82、 public HJCommonCombox(boolean isSupportSpell){
83、 this.isSupportSpell=isSupportSpell;
84、 SpellComboBoxDecorator scb= new SpellComboBoxDecorator(this);
85、/**@deprecated请使用 HJCommonCombox(Builder builder)模式
86、*@param isSupportSpell is true;表示支持拼音搜索
87、 public HJCommonCombox(boolean isSupportSpell,boolean isAll){
88、 public void setSelectedItem(Object o){
89、 HJComboBoxUtils.setSelectedItem(o, cm);
90、 public static void allSetEmpty(HJCommonCombox cmbBox){
91、 if(cmbBox.getModel().getSize()>0){
92、 DisplayData dd=(DisplayData) cmbBox.getItemAt(0);
93、 dd.setText(MessageConstants.ALL_SET_EMPTY);
94、 JTextField editor=(JTextField)cmbBox.getEditor().getEditorComponent();
95、 editor.setText(MessageConstants.ALL_SET_EMPTY);
96、 public void setSelectedIndex(int anIndex){
97、 if(getModel().getSize()>0){
98、 super.setSelectedIndex(anIndex);
99、 public static void allSetEmptyReset(HJCommonCombox cmbBox){
100、 if(cmbBox.getModel().getSize()>0){
101、 DisplayData dd=(DisplayData) cmbBox.getItemAt(0);
102、 JTextField editor=(JTextField)cmbBox.getEditor().getEditorComponent();
103、*@param allRecods返回所有的对象
104、*@param allActiveRecords返回所有状态为active的对象
105、*@return不需要返回值,修改传入的2个list即可
106、 public static<T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List allRecods,List allActiveRecords){
107、 if(EDataStatus.VALID.getKey()==temp.getDataStatus()){
108、 allActiveRecords.add(converter.func(t));
109、 allRecods.add(converter.func(t));
110、 public static<T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List inputRecods){
111、 inputRecods.add(converter.func(t));
112、 public static<T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List allRecods,List allActiveRecords,List allActiveRecordsWithMulti){
113、 if(EDataStatus.VALID.getKey()==temp.getDataStatus()){
114、 allActiveRecordsWithMulti.add(a);
115、 protected List<DisplayData> getActiveModelData(){
116、 protected List<DisplayData> getAllModelData(){
117、 protected List<DisplayData> getActiveMultiModelData(){
118、 protected List<DisplayData> getFilterActiveModelData(String filter){
119、 protected List<DisplayData> getFilterAllModelData(String filter){
120、 protected List<DisplayData> getFilterActiveMultiModelData(String filter){
二、java框架有哪些常用框架
1、 SSH框架一般指的是Struts、Spring、Hibernate,后来Struts2代替了Struts。最近5年,Struts2已经被Spring MVC代替,而Hibernate基本也被iBatis/MyBatis代替。所以你真正需要了解的是Spring,Spring你需要了解两个概念AOP和IOC,更进一步就是Spring的核心技术“动态代理”。这里不再多说。
2、 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
3、 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
4、 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和 Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
三、Java中常用的开发工具有哪些
1、Eclipse据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于Eclipse是一个开源的、可以基于Java的可扩展开发平台。Eclipse本身而言,它只是一个框架和一组服务,但可以通过插件组件构建开发环境。
2、editplus EditPlus是一款由韩国 Sangil Kim(ES-Computing)开发的编辑器,可以作为C,Java,Php等等语言的一个简单的IDE。EditPlus拥有无限制的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能,也是一款常见的Java开发工具。
3、NetBeans NetBeans提供了功能全面的阵列,如转换器,编辑器和代码分析器,使用这些工具可以帮助我们使用的Java技术实现应用程序。NetBeans工具范围相当广泛,是一款的Java开发工具。
4、Junit Junit是一个可以帮助Java开发人员编写和运行测试的单元测试框架。JUnit和市场上其他类似的框架有着本质的区别。主要表现在你可以一次测试一个代码块,而不需要等待该模块在运行测试前完成。实际上是你可以“先测试,然后写代码”
5、VisualVM VisualVM也是一款使用较多的Java开发工具。它最主要的功能便是可以排查故障,可以使用VisualVM整合多命令行JDK工具。如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM最出名的是附加了API,以获得更多的数据,以及自动使用更快捷。
6、Gradle Gradle是一个自动化项目工具,是建立在Apache Maven和Apache Ant的功能上。虽然Gradle并不是的构建工具(的是Maven,64%的Java开发人员会选择它),但它的普及速度很快。它同时也可作为默认的Android构建开发工具。
7、SparkJava SparkJava是一款体形轻巧,功能强大的Web应用框架。Spark可以通过一些繁琐的XML配置来使用Spark框架编写应用程序。能让我们花最少的精力来开发Java的Web应用程序。是一款的Java web开发工具。
8、Clover Clover主要用于代码覆盖,可以帮助用于测试应用程序的代码。我们可以在IDE或持续集成系统中运行Clover。能够让测试的运行速度更快。是Java开发测试必不可少的工具之一。