我很确定这很容易,而且我只缺少一行或两行,但尽管在互联网上寻找解决方案,我仍然无法做到这一点。我对java很新,我的问题出在桌面应用程序中。
我有一个非常简单的桌面应用程序,一个文本区域,一个菜单栏,一个菜单和3个菜单项。当我单击JFrame中的Statistic菜单项时,我想编辑文本区域的文本。
以下是我创建菜单栏,菜单和菜单项(以及他们的活动)的代码部分:
//menu
mnuRevision.setText("Revision");
mnuitmStats.setText("Statistique");
mnuitmStats.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
mnumnuitmStatsMouseClicked(evt);
}
});
mnuRevision.add(mnuitmStats);
mnuitmOrthographe.setText("Grammaire et orthographe");
mnuitmOrthographe.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
mnuitmOrthographeMouseClicked(evt);
}
});
mnuRevision.add(mnuitmOrthographe);
mnuitmAnalyse.setActionCommand("Analyse");
mnuitmAnalyse.setText("Analyse");
mnuRevision.add(mnuitmAnalyse);
jMenuBar1.add(mnuRevision);
setJMenuBar(jMenuBar1);
这是Mousclicked功能:
private void mnumnuitmStatsMouseClicked(java.awt.event.MouseEvent evt){
this.txtTexte.setText("asdf");
this.repaint();
}
我想要做的是当我点击 mnuitemStats 时, txtTexte 会在其中写入“asdf”。不知何故,这不起作用。看起来该程序甚至没有进入该功能。我查看了一些教程,除了对象名称之外,它们几乎和我的代码相同,因为大多数教程使用 JButton 而不是 JMenuItem 。
如果需要,我可以提供我的全部代码,但我认为其余部分无关紧要,因为它没有触及菜单栏或textarea。我正在使用Eclipse Java EE IDE。
答案 0 :(得分:4)
我经常写点像
mnuitemStats.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event)
{// your logic here;
}});
答案 1 :(得分:3)
假设mnuitmStats是一个JMenuItem,它应该是。多一点代码会有所帮助但是假设您应该使用ActionListener而不是MouseListener。
类似的东西:
class MenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//do something
}
}
和
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
JMenuItem newMenuItem = new JMenuItem("New");
newMenuItem.addActionListener(new MenuActionListener());
fileMenu.add(newMenuItem);