如何禁用Java Swing菜单项?

6

我使用awt制作了一个菜单,并添加了几个项目。如何“禁用”这些菜单项?


你使用了AWT还是Swing?你所有的组件类都以J开头吗? - Joachim Sauer
2个回答

17
   menuItemInstance.setEnabled(false);

谢谢,我以为那样做是正确的,但后来意识到我把它用在了错误的地方。谢谢! - user677811

9

我有点抱怨其他答案:改变菜单项本身的启用状态是可以做到的,所以从技术上讲他们是正确的。然而,在大多数情况下这不是一个好主意。

管理启用状态在除了最简单的环境之外会变得相当复杂。通常需要一个专门的状态模型。该状态模型的目标项目应类似于数据(而不是视图)。对于菜单项(或其他按钮),理想的(因为它是为此而设计的 :))目标项目是Action

简短版:使用Action填充菜单,然后管理操作的启用状态,而不是组件的状态。


这是一个简单的环境。我正在制作一个照片编辑器,希望在没有照片的情况下禁用菜单项。 - user677811

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接