Spring を使用してメニューバー付きのスイング フレームを作成しています。私の問題は、フレームを起動してもメニューバーがまったく表示されないことです。beans.xml と Bean クラスを表示します。理由を教えてください。メニューバーが表示されません。次のように 4 つの Bean があります。
MenuItem Bean:
public class MyMenuItem extends JMenuItem {
private ArrayList<String> menuItemNames;
public MyMenuItem() { }
public ArrayList<String> getMenuItemNames() {
return menuItemNames;
}
public void setMenuItemNames(ArrayList<String> menuItemNames) {
this.menuItemNames = menuItemNames;
}
}
Menu Bean :
public class MyMenu extends JMenu {
private static final long serialVersionUID = 1L;
private MyMenuItem myMenuItem;
private ArrayList<String> menuNames;
private MyMenuItem menuItem;
public MyMenu() {}
@PostConstruct
public void init() {
for (String menuItemName : myMenuItem.getMenuItemNames()) {
menuItem = new MyMenuItem();
menuItem.setText(menuItemName);
this.add(menuItem);
}
}
public MyMenuItem getMyMenuItem() {
return myMenuItem;
}
public void setMyMenuItem(MyMenuItem myMenuItem) {
this.myMenuItem = myMenuItem;
}
public ArrayList<String> getMenuNames() {
return menuNames;
}
public void setMenuNames(ArrayList<String> menuNames) {
this.menuNames = menuNames;
}
}
MenuBar Bean:
public class MyMenuBar extends JMenuBar {
private static final long serialVersionUID = 1L;
private MyMenu myMenu;
public MyMenu getMyMenu() {
return myMenu;
}
public void setMyMenu(MyMenu myMenu) {
this.myMenu = myMenu;
}
public MyMenuBar() {
}
@PostConstruct
public void init() {
for (String menu : myMenu.getMenuNames()) {
MyMenu mm = new MyMenu();
mm.setText(menu);
this.add(mm);
}
}
}
および Frame Bean:
public class MainFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private MyMenuBar myMenuBar;
@PostConstruct
public void init(){
this.add(myMenuBar);
}
public MainFrame() {
}
public MyMenuBar getMyMenuBar() {
return myMenuBar;
}
public void setMyMenuBar(MyMenuBar myMenuBar) {
this.myMenuBar = myMenuBar;
}
}
これは私のBean設定ファイルbeans.xmlです:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<bean id="menuItem" class="com.spring.frame.MyMenuItem" init-method="init">
<property name="menuItemNames">
<bean class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="targetListClass">
<value>java.util.ArrayList</value>
</property>
<property name="sourceList">
<list>
<value>Copy</value>
<value>Paste</value>
<value>Cut</value>
</list>
</property>
</bean>
</property>
</bean>
<bean id="menu" class="com.spring.frame.MyMenu" init-method="init">
<property name="myMenuItem">
<ref bean="menuItem"></ref>
</property>
<property name="menuNames">
<bean class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="targetListClass">
<value>java.util.ArrayList</value>
</property>
<property name="sourceList">
<list>
<value>File</value>
<value>Edit</value>
</list>
</property>
</bean>
</property>
</bean>
<bean id="menuBar" class="com.spring.frame.MyMenuBar" init-method="init">
<property name="myMenu">
<ref bean="menu" />
</property>
</bean>
<bean id="frame" class="com.spring.frame.MainFrame" init-method="init">
<property name="myMenuBar">
<ref bean="menuBar"></ref>
</property>
</bean>
コードが長い場合は、ありがとうございます。