残念ながら、私はJavaを学んでいませんでした。私はJava以外の他のプログラミング言語も知っています。Java、別のクラスのJMenuItemのテキストを設定するにはどうすればいいですか?
私はメニューを作成し、メニューにアイテムを追加する方法を知っています。私は私の単純な基本的なJavaの本からそれを考え出した。しかし、私はオープンソースソフトウェアの一部にアクセスし、それをいくつか調整して、それが私のために働くようにする必要があり、私は立ち往生しています。だから私は何が起こっているのかのコードを提供し、私が持っているもののコードを提供し、誰かが不足している部分を記入し、それがどのように働いたかを説明することができればうれしく思います。
以下のコードは、TranslatorAction.javaを呼び出すファイルの一部です。新しいメニュー項目を作成するときに、行で呼び出します。私はこの部分を完全に理解しています。私はこのコードを投稿しただけなので、importステートメントがJMenuItemのためにインポートされておらず、メニュー項目がmenu.addコールから間接的に追加されていることがわかります。 adminMenu.addは、オブジェクト/クラスを作成してメニュー項目を作成していますか? paremetersを使用して新しい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のテキストの設定にアクセスする際に問題が発生しています。私はコードを演奏することから知っていることを知っているラインスーパー( "テスト");新しいJMenuItemテキストを設定しています。これを変数にセットしたいので、その場で変更することができます。以下はadminMenu.add(New TranslatorAction())で上から呼び出されるファイル全体です。
TranslatorAction javaファイルのコード私を助けるために、すべてのものの時間のため
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) {
}
}
感謝。 ショーン
完全な例を示すために質問を編集してください。特に、すべてのメソッドはクラス内にある必要があります。また、インデントを修正する必要があります。 –
また、私はあなたが尋ねていることを正確に理解していません。あなたは何を置くべきか分からないコードを追加する必要があるあなたの例を示すべきです。 –
私は、私が理解しているものと変更する必要があるものでコードをコメントしました。ラインスーパー( "テスト")。私が変える必要があるものです。私が知っているこの行は、ファイルメニューのテキストを変更します。だから私はそれをスーパー( "java")に変更します。ファイルメニューにはJavaがあります。私はこれを動的に変更できる必要があります。だから、私はそれを動的に変更するコードではないが、他のクラスadminMenu.add(new translatorAction())からの呼び出しから作成されたJMenuItemのsetTextにアクセスするために何をする必要があるかを知る必要があると思います。 –