Hallo,
ich glaube ich habe einen Denkfehler ... Ich möchte zur Laufzeit bestimmte Einträge in meinem JMenu aktivieren / deaktivien, abhängig von bestimmten Parametern.
Ich weiß, daß man mit JMenuItem.setEnable(true / false) ein element aktivieren / deaktivien kann, aber das ist dann ja einmalig beim Erstellen der Menubar. Ich würde gerne bei jedem Klick auf mnuFile eine Überprüfung ausführen und dem entsprechend den Eintrag mnuExport (de-)aktivieren.
Danke
chrissy
ich glaube ich habe einen Denkfehler ... Ich möchte zur Laufzeit bestimmte Einträge in meinem JMenu aktivieren / deaktivien, abhängig von bestimmten Parametern.
Code:
this.setJMenuBar( createMenu());
private JMenuBar createMenu()
{
JMenuBar menu = new JMenuBar();
JMenu mnuFile = new JMenu();
JMenuItem mnuNew = new JMenuItem();
JMenuItem mnuOpen = new JMenuItem();
JMenuItem mnuSave = new JMenuItem();
JMenuItem mnuSaveAs = new JMenuItem();
JMenuItem mnuExit = new JMenuItem();
JMenu mnuHelp = new JMenu();
JMenuItem mnuInfo = new JMenuItem();
JMenu mnuProd = new JMenu();
JMenu mnuExport = new JMenu();
JMenuItem mnuExPDF = new JMenuItem();
mnuFile.setText(langPack.getString("File"));
System.out.println(mnuFile.isShowing());
mnuNew.setText(langPack.getString("New"));
mnuNew.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
newFile();
}
});
mnuFile.add(mnuNew);
mnuOpen.setText(langPack.getString("Open"));
mnuOpen.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
openFile();
}
});
mnuFile.add(mnuOpen);
mnuFile.addSeparator();
mnuSave.setText(langPack.getString("Save"));
mnuSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
setFileName();
if (fileName.length() != 0) saveFile();
else saveAsFile();
}
});
mnuFile.add(mnuSave);
mnuSaveAs.setText(langPack.getString("SaveAs"));
mnuSaveAs.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
saveAsFile();
}
});
mnuFile.add(mnuSaveAs);
mnuFile.addSeparator();
mnuExport.setText(langPack.getString("export"));
//mnuExport.setEnabled(false);
mnuFile.add(mnuExport);
mnuExPDF.setText("PDF");
mnuExPDF.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
print();
}
});
mnuExport.add(mnuExPDF);
mnuFile.addSeparator();
mnuExit.setText(langPack.getString("Exit"));
mnuExit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
System.exit(0);
}
});
mnuFile.add(mnuExit);
menu.add(mnuFile);
ButtonGroup groupProduct = new ButtonGroup();
mnuAll.setText(langPack.getString("SelectAll"));
mnuAll.setSelected(true);
groupProduct.add(mnuAll);
mnuAll.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
setSelectedProduct(true);
}
});
mnuSingle.setText(langPack.getString("SelectSingle"));
groupProduct.add(mnuSingle);
mnuSingle.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
setSelectedProduct(false);
}
});
mnuProd.setText(langPack.getString("Material"));
mnuProd.add(mnuAll);
mnuProd.add(mnuSingle);
menu.add(mnuProd);
mnuHelp.setText(langPack.getString("Help"));
mnuInfo.setText(langPack.getString("About"));
mnuInfo.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(desktop,
langPack.getString("Info"), "Info",
JOptionPane.INFORMATION_MESSAGE);
}
});
mnuHelp.add(mnuInfo);
menu.add(mnuHelp);
return menu;
}
Ich weiß, daß man mit JMenuItem.setEnable(true / false) ein element aktivieren / deaktivien kann, aber das ist dann ja einmalig beim Erstellen der Menubar. Ich würde gerne bei jedem Klick auf mnuFile eine Überprüfung ausführen und dem entsprechend den Eintrag mnuExport (de-)aktivieren.
Danke
chrissy