불행히도 자바를 배우지 못했지만 Java를 제외한 다른 프로그래밍 언어를 알고 있습니다.자바, 다른 클래스의 JMenuItem의 텍스트를 어떻게 설정합니까?
메뉴를 만들고 메뉴에 항목을 추가하는 방법을 알고 있습니다. 내 단순한 기본 자바 서적에서 그걸 알아 냈어. 그러나 나는 오픈 소스 소프트웨어에 접근 할 수 있으며 그것을 위해 약간의 조정을 할 필요가있다. 그래서 나는 진행되고있는 일에 대한 코드를 제공하고, 가지고있는 코드를 제공하고, 누군가가 누락 된 부분을 채우고 어떻게 작동하는지 설명 할 수 있기를 바랍니다.
아래 코드는 TranslatorAction.java를 호출하는 파일의 일부입니다. 새 메뉴 항목을 만들 때이 코드를 호출합니다. 나는이 부분을 완전히 이해한다. 나는 import 문이 JMenuItem을 위해 임포트되지 않고 메뉴 항목이 menu.add 호출에서 간접적으로 추가되고 있음을 볼 수 있도록이 코드를 게시했다. adminMenu.add는 객체/클래스를 생성하여 메뉴 항목을 생성하고 있습니까 ?? 새 번역기 사용하기 TranslatorAction
javax.swing.JMenu;
import javax.swing.JMenuBar;
import com.bo.actions.TranslatorAction;
private void createAdminMenu(JMenuBar menuBar) {
JMenu adminMenu = new JMenu(com.POSConstants.ADMIN);
adminMenu.add(new TranslatorAction());
menuBar.add(adminMenu);
}
새 TranslatorAction()이 위에서 새 메뉴 항목을 만들 때 호출되면. 새 JMenuItem의 텍스트 설정에 액세스하는 데 문제가 있습니다. 나는 코드 super ("test")를 가지고 노는 것으로부터 알고있다. 새 JMenuItem 텍스트를 설정 중입니다. 이 변수를 변수로 설정하여 해당 변수를 즉시 변경할 수있게하고 싶습니다. 아래는 adminMenu.add (New TranslatorAction())에서 위에서 호출 한 전체 파일입니다.
TranslatorAction 자바 파일의 코드 저를 도와 주셔서 모든 사람 '시간
package com.bo.actions;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.JTabbedPane;
import com.POSConstants;
import com.bo.ui.BackOfficeWindow;
public class TranslatorAction extends AbstractAction {
public TranslatorAction(){
//I know this sets the JMenuItem to Test. Again no importing of
//JMenuItem at all what so ever. But I need to set the JmenuItem
//to something on the fly instead of hard coding it. Can anyone
//show and explain how to dynamically create/change super("test"),
// so that way it is not hard coded?
super("Test");
}
public TranslatorAction(String name) {
super(name);
}
public TranslatorAction(String name, Icon icon) {
super(name, icon);
}
public void actionPerformed(ActionEvent e) {
}
}
감사합니다. Shawn
전체 예제를 제공하려면 질문을 편집하십시오. 특히 모든 메소드는 클래스 내에 있어야합니다. 들여 쓰기도 수정해야합니다. –
또한, 나는 당신이 정확히 무엇을 요구하고 있는지 이해하지 못합니다. 무엇을 넣을 지 모르는 코드를 추가해야하는 경우 예제에 표시해야합니다. –
나는 내가 이해하고 변경해야 할 것을 코드에 주석으로 적었다. 슈퍼 라인 ("test"); 내가 바꿀 필요가있는 것이지. 내가 아는이 선은 파일 메뉴의 텍스트를 변경합니다. 그래서 내가 그것을 ("java") super로 바꾼다면; 파일 메뉴에는 Java가 있습니다. 나는 이것을 동적으로 바꿀 수 있어야한다. 그래서 내가 알아야 할 것은 동적으로 코드를 변경하는 코드가 아니라 다른 클래스 adminMenu.add (new translatorAction())에서 호출하여 생성 된 JMenuItem에 대한 setText에 액세스하기 위해해야 할 일이 무엇인지 추측합니다. –