Select 如何在JPOppMenu中按名称设置某些JMenuItem?
我有一个JPOppMenu,上面有几个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
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++;
}
}