Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Select 如何在JPOppMenu中按名称设置某些JMenuItem?_Select_Jmenuitem_Jpopupmenu - Fatal编程技术网

Select 如何在JPOppMenu中按名称设置某些JMenuItem?

Select 如何在JPOppMenu中按名称设置某些JMenuItem?,select,jmenuitem,jpopupmenu,Select,Jmenuitem,Jpopupmenu,我有一个JPOppMenu,上面有几个JCheckBoxMenuItem的 我还有一个属性文件(config.properties),在其中我放置了一个参数,当我关闭应用程序时,该参数保存用户在这个JPOppMenu上检查的每个JCheckBoxMenuItem 因此,该文件类似于: config.properties: listeFiltres =Autres,Afrique du sud,Algérie 我想做的是,在应用程序开始时,设置保存在我的属性参数中的每个项目 例如,如果“Afr

我有一个JPOppMenu,上面有几个
JCheckBoxMenuItem的

我还有一个属性文件(config.properties),在其中我放置了一个参数,当我关闭应用程序时,该参数保存用户在这个JPOppMenu上检查的每个JCheckBoxMenuItem

因此,该文件类似于:

config.properties:

listeFiltres =Autres,Afrique du sud,Algérie
我想做的是,在应用程序开始时,设置保存在我的属性参数中的每个项目

例如,如果“Afrique、Algérie、Allemagne”存储在
config.properties
中我的参数
ListFilters
中,我希望在应用程序开始时检查这3个
JCheckBoxMenuItem

问题是我只知道
setSelected
方法,该方法允许选择具有特定索引的项目(如2),但这里我需要选择具有特定名称的项目(如“Afrique”),因此该方法不适合我

以下是我的JPOppMenu的代码:

MainVue.java:

public class MainVue extends JFrame implements ActionListener {

 private static final JScrollPopupMenu menuProduit = new JScrollPopupMenu();
 private static final JScrollPopupMenu menuPays = new JScrollPopupMenu();
 private static List<String> listeFiltres = new ArrayList<String>();
 private String listeDeFiltres;
 private String[] tableauFiltrePermanent;
 private String listeFiltrePermanent;

 private String[] tableauPays = { "Autres", "Afrique du sud", "Algérie", "Allemagne", "Arabie Saoudite", "Argentine",
        "Australie", "Bangladesh", "Belgique", "Brésil", "Bulgarie", "Canada", "Chine", "Corée du sud", "Egypte",
        "Emirats-Arabes Unis", "Espagne", "Etats-Unis", "Ethiopie", "Europe", "France", "Hongrie", "Inde",
        "Indonésie", "Irak", "Iran", "Israél", "Italie", "Japon", "Jordanie", "Kazakhstan", "Koweit", "Liban",
        "Libye", "Malaisie", "Maroc", "Mexique", "Monde", "Oman", "Pakistan", "Pays-Bas", "Philippines", "Poligne",
        "Portugal", "Qatar", "République tchéque", "Roumanie", "Russie", "Taïwan", "Tunisie", "Turquie",
        "Ukraine" };
 private String[] tableauProduit = { "Blé", "Colza", "Mais", "Orge", "Orge de Brasserie", "Palme", "Soja",
        "Tournesol", "Tourteaux De Colza", "Tourteaux de Soja", "Huile de Soja", "Huile De Colza" };

 private List<JCheckBoxMenuItem> listJCBProduit = new ArrayList<JCheckBoxMenuItem>();
 private List<JCheckBoxMenuItem> listJCBPays = new ArrayList<JCheckBoxMenuItem>();
 public static PropertiesConfiguration prop;

 public MainVue(Modele modele, Controleur controleur) throws ClassNotFoundException, SQLException, IOException {

  prop = new PropertiesConfiguration("config.properties");

  for (int i = 0; i < tableauProduit.length; i++) {
        listJCBProduit.add(new JCheckBoxMenuItem(tableauProduit[i]));
    }

    for (int j = 0; j < listJCBProduit.size(); j++) {
        JCheckBoxMenuItem produitActuel = listJCBProduit.get(j);
        menuProduit.add(produitActuel);
        produitActuel.addActionListener(new OpenAction(menuProduit, boutonProduit));


    }

    for (int i = 0; i < tableauPays.length; i++) {
        listJCBPays.add(new JCheckBoxMenuItem(tableauPays[i]));
    }

    for (int j = 0; j < listJCBPays.size(); j++) {
        JCheckBoxMenuItem paysActuel = listJCBPays.get(j);
        menuPays.add(paysActuel);
        paysActuel.addActionListener(new OpenAction(menuPays, boutonPays));
    }
    listeDeFiltres = "";

        for (int p = 0; p < listeFiltres.size(); p++) {
            String filtreActuel = listeFiltres.get(p);
            if (listeDeFiltres == "") {
                listeDeFiltres += filtreActuel;
            } else {
                listeDeFiltres += "," + filtreActuel;
            }

            }
  prop.setProperty("listeFiltres", listeDeFiltres);
 }
}
公共类MainVue扩展JFrame实现ActionListener{
private static final JScrollPopupMenu menupuduit=new JScrollPopupMenu();
私有静态最终JScrollPopupMenu menuPays=新JScrollPopupMenu();
private static List listerfilters=新建ArrayList();
私有字符串列表定义;
私有字符串[]tableaufiltermanent;
私有字符串列表;
私有字符串[]tableauPays={“Autres”、“南非”、“Algérie”、“Allemagne”、“Arabie Saoudite”、“阿根廷”,
“澳大利亚”、“孟加拉国”、“比利时”、“巴西”、“保加利亚”、“加拿大”、“中国”、“南方装饰”、“埃及”,
“阿拉伯联合酋长国”、“西班牙联合酋长国”、“埃塞俄比亚联合酋长国”、“埃塞俄比亚联合酋长国”、“欧洲联合酋长国”、“法国联合酋长国”、“法国联合酋长国”、“印度联合酋长国”,
“印度”、“伊拉克”、“伊朗”、“以色列”、“意大利”、“日本”、“约旦”、“哈萨克斯坦”、“科维特”、“利比亚”,
“Libye”、“Malaisie”、“Maroc”、“Mexique”、“Monde”、“阿曼”、“巴基斯坦”、“Pays Bas”、“菲律宾”、“Poligne”,
“葡萄牙”、“卡塔尔”、“法国”、“鲁曼尼”、“俄罗斯”、“塔万”、“突尼斯”、“土耳其”,
“乌克兰”};
私有字符串[]tableauProduit={“Blé”、“Colza”、“Mais”、“Orge”、“Orge de Brasserie”、“Palme”、“Soja”,
“Tournesol”、“Tourteaux De Colza”、“Tourteaux De Soja”、“Huile De Soja”、“Huile De Colza”};
私有列表listJCBProduit=新的ArrayList();
private List listJCBPays=new ArrayList();
公共静态属性配置道具;
public MainVue(Modele Modele、Controleur Controleur)抛出ClassNotFoundException、SQLException、IOException{
prop=新属性配置(“config.properties”);
对于(int i=0;i
您可以按如下方式从tableauPays数组中获取名称索引,并将其传递给setSelected()方法

public int getIndex(String name){
        int index = 0;
        for(String p : tableauPays){
            if(p.equals(name)){
                return index;
            }
            index++;
        }
    }