Spring富客户端工具栏菜单赢得';不显示
我已经从sourceforge下载了Spring富客户端1.1.0,并连接了所有bean。当我运行应用程序时,我看到一个窗格,但没有菜单栏。控制台中没有警告或错误 以下是菜单栏bean:Spring富客户端工具栏菜单赢得';不显示,spring,spring-mvc,Spring,Spring Mvc,我已经从sourceforge下载了Spring富客户端1.1.0,并连接了所有bean。当我运行应用程序时,我看到一个窗格,但没有菜单栏。控制台中没有警告或错误 以下是菜单栏bean: <bean id="menuBar" class="org.springframework.richclient.command.CommandGroupFactoryBean" > <property name="members"> <list>
<bean id="menuBar" class="org.springframework.richclient.command.CommandGroupFactoryBean" >
<property name="members">
<list>
<ref bean="userManagementMenu" />
</list>
</property>
</bean>
<bean id="userManagementMenu" class="org.springframework.richclient.command.CommandGroupFactoryBean" >
<property name="members">
<list>
<ref bean="userCommand"/>
<ref bean="userGroupCommand"/>
<value>separator</value>
</list>
</property>
</bean>
<bean id="fd1" class="org.springframework.richclient.command.config.CommandFaceDescriptor">
<constructor-arg index="0" value="hello"/>
</bean>
<bean id="fd2" class="org.springframework.richclient.command.config.CommandFaceDescriptor">
<constructor-arg index="0" value="there"/>
</bean>
<bean id="userCommand" class="org.springframework.richclient.command.support.WidgetViewCommand">
<property name="widgetViewDescriptorId" value="userView" />
<property name="faceDescriptor" ref="fd1"/>
</bean>
<bean id="userGroupCommand" class="org.springframework.richclient.command.support.WidgetViewCommand">
<property name="widgetViewDescriptorId" value="userGroupView" />
<property name="faceDescriptor" ref="fd2"/>
</bean>
下面是UserView的代码
package com.mycom.views;
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.springframework.richclient.application.support.AbstractView;
public class UserView extends AbstractView {
private JTextField field = new JTextField();
private JLabel lbl = new JLabel("User:");
public JComponent createControl() {
JPanel view = new JPanel();
view.add(lbl, BorderLayout.NORTH);
view.add(field, BorderLayout.SOUTH);
return view;
}
}
以下是控制台日志:
2016年2月24日上午9:21:13 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息:刷新org.springframework.context.support。ClassPathXmlApplicationContext@45283ce2:显示名称[org.springframework.context.support]。ClassPathXmlApplicationContext@45283ce2]; 启动日期[Wed Feb 24 09:21:13 PST 2016];上下文层次结构的根
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/appbundle.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/application.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/commands.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/models.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/filters.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/filterperforms.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/editors.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/forms.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/dataproviders.XML]加载XMLbean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/services.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[ctx/views.XML]加载XMLBean定义
2016年2月24日上午9:21:13 org.springframework.context.support.AbstractApplicationContext获得FreshBeanFactory
信息:应用程序上下文的Bean工厂[org.springframework.context.support]。ClassPathXmlApplicationContext@45283ce2]:org.springframework.beans.factory.support。DefaultListableBeanFactory@591f989e
2016年2月24日上午9:21:13 org.springframework.beans.factory.support.DefaultListableBeanFactory预实例化Singleton
信息:在org.springframework.beans.factory.support中预实例化单例。DefaultListableBeanFactory@591f989e:定义bean[serviceLocator、applicationServices、applicationEventMulticaster、application、windowCommandManager、lifecycleAdvisor、applicationDescriptor、messageSource、菜单栏、userManagementMenu、fd1、fd2、userCommand、userGroupCommand、baseModel、user、userGroup、userFilter、userGroupFilter、AbstractFilterPerform、UserGroupFilterPerform、abstractDataEditor、userDataEditor、userGroupDataEditor、abstractForm、userForm、userGroupForm、abstractDataProvider、userDataProvider、userGroupDataProvider、userService、userGroupService、userView、userGroupView];工厂层次结构的根
2016年2月24日上午9:21:13 org.springframework.richclient.application.support.DefaultApplicationServices$8构建
信息:创建默认服务impl:CommandConfigurer
2016年2月24日上午9:21:13 org.springframework.richclient.application.support.DefaultApplicationServices$7构建
信息:未设置对象配置器bean Id;正在配置默认值。
2016年2月24日上午9:21:13 org.springframework.richclient.application.support.DefaultApplicationServices$4构建
信息:创建默认服务impl:CommandServices
2016年2月24日上午9:21:13 org.springframework.richclient.application.config.DefaultApplicationObjectConfigurer加载消息
信息:消息源找不到消息代码[userCommand.前台]。忽略并返回null。
2016年2月24日上午9:21:13 org.springframework.richclient.application.config.DefaultApplicationObjectConfigurer加载消息
信息:消息源找不到消息代码[userCommand.background]。忽略并返回null。
2016年2月24日上午9:21:13 org.springframework.richclient.application.config.DefaultApplicationObjectConfigurer加载消息
信息:消息源找不到消息代码[userCommand.caption]。忽略并返回null。
2016年2月24日上午9:21:13 org.springframework.richclient.application.config.DefaultApplicationObjectConfigurer加载消息
信息:消息源找不到消息代码[userCommand.description]。忽略并返回null。
2016年2月24日上午9:21:13 org.springframework.richclient.application.support.DefaultApplicationServices$10构建
信息:创建默认服务impl:IconSource
2016年2月24日上午9:21:13 org.springframework.richclient.application.support.DefaultApplicationServices$9构建
信息:正在创建默认服务impl:ImageSource
2016年2月24日上午9:21:13 org.springframework.core.io.support.properties加载程序支持加载属性
信息:从类路径资源[org/springframework/richclient/image/images.properties]加载属性文件
2016年2月24日上午9:21:13 org.springframework.richclient.image.DefaultIconSource getIcon
信息:找不到键为“userCommand.icon”的图标的图像资源;正在返回图标。
2016年2月24日9:21:1
<bean name="userView" scope="prototype" class="org.springframework.richclient.application.support.DefaultViewDescriptor">
<property name="viewClass" value="com.mycom.views.UserGroupView"/>
</bean>
<bean name="userGroupView" scope="prototype" class="org.springframework.richclient.application.support.DefaultViewDescriptor">
<property name="viewClass" value="com.mycom.views.UserGroupView"/>
</bean>
<bean id="serviceLocator" class="org.springframework.richclient.application.ApplicationServicesLocator">
<property name="applicationServices" ref="applicationServices" />
</bean>
<bean id="applicationServices"
class="org.springframework.richclient.application.support.DefaultApplicationServices" />
<bean id="applicationEventMulticaster"
class="org.springframework.context.event.SimpleApplicationEventMulticaster" />
<bean id="application" class="org.springframework.richclient.application.Application">
<constructor-arg index="0" ref="applicationDescriptor"/>
<constructor-arg index="1" ref="lifecycleAdvisor"/>
</bean>
<bean id="applicationDescriptor" class="org.springframework.richclient.application.support.DefaultApplicationDescriptor">
<property name="version" value="1.0"/>
<property name="buildId" value="20060408-001"/>
</bean>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>
package com.mycom.views;
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.springframework.richclient.application.support.AbstractView;
public class UserGroupView extends AbstractView {
private JTextField field = new JTextField();
private JLabel lbl = new JLabel("UserGroup:");
public JComponent createControl() {
JPanel view = new JPanel();
view.add(lbl, BorderLayout.NORTH);
view.add(field, BorderLayout.SOUTH);
return view;
}
}
package com.mycom.views;
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.springframework.richclient.application.support.AbstractView;
public class UserView extends AbstractView {
private JTextField field = new JTextField();
private JLabel lbl = new JLabel("User:");
public JComponent createControl() {
JPanel view = new JPanel();
view.add(lbl, BorderLayout.NORTH);
view.add(field, BorderLayout.SOUTH);
return view;
}
}
package com.mycom.form;
import com.mycom.model.User;
import org.springframework.richclient.form.builder.FormLayoutFormBuilder;
public class UserForm extends AbstractForm{
public UserForm(String formId, User user) throws Exception{
super(formId, user);
}
protected void addComponents(FormLayoutFormBuilder builder){
super.addComponents(builder);
builder.addPropertyAndLabel("dateOfBirth");
builder.nextRow();
builder.addPropertyAndLabel("userGroup");
}
}
package com.mycom.form;
import javax.swing.JComponent;
import com.jgoodies.forms.layout.FormLayout;
import com.mycom.model.BaseModel;
import org.springframework.binding.form.FieldMetadata;
import org.springframework.richclient.form.FormModelHelper;
import org.springframework.richclient.form.TabbedForm;
import org.springframework.richclient.form.builder.FormLayoutFormBuilder;
public class AbstractForm extends TabbedForm{
private String tabName;
public AbstractForm(String formId, BaseModel baseModel) throws Exception{
super(FormModelHelper.createFormModel(baseModel, formId));
}
protected Tab[] getTabs(){
FormLayout layout = new FormLayout("default, 3dlu, fill:pref:nogrow", "default");
FormLayoutFormBuilder builder = new FormLayoutFormBuilder(getBindingFactory(), layout);
addComponents(builder);
return new Tab[] {new Tab(getTabName(), builder.getPanel())};
}
protected void addComponents(FormLayoutFormBuilder builder){
builder.addPropertyAndLabel("id");
builder.nextRow();
JComponent nameComponent = builder.addPropertyAndLabel("name")[1];
builder.nextRow();
FieldMetadata idMetaData = getFormModel().getFieldMetadata("id");
idMetaData.setReadOnly(true);
setFocusControl(nameComponent);
}
protected String getTabName(){
return tabName;
}
public void setTabName(String tabName) {
this.tabName = tabName;
}
}
<bean name="abstractForm" scope="prototype" abstract = "true">
<property name= "tabName" value="Detail" />
</bean>
<bean name="userForm" scope="prototype" class="com.mycom.form.UserForm">
<constructor-arg index = "0" value="userForm" />
<constructor-arg index = "1" ref="user" />
<property name= "tabName" value="User Detail" />
</bean>