java菜单条点击事件

java菜单条点击事件,第1张

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class MyMenu extends JFrame{

JMenuBar jmbar=new JMenuBar()

JMenu jmenu=new JMenu("颜色")

JMenuItem jmt1=new JMenuItem("红色"),

jmt2=new JMenuItem("黄色"),

jmt3=new JMenuItem("蓝色")

JPanel jp=new JPanel()

MyMenu(){

setTitle("菜单测试")

setSize(400,300)

setJMenuBar(jmbar)

jmbar.add(jmenu)

jmenu.add(jmt1)

jmenu.add(jmt2)

jmenu.add(jmt3)

add(jp)

jmt1.addActionListener(new MenuAction(this))

jmt2.addActionListener(new MenuAction(this))

jmt3.addActionListener(new MenuAction(this))

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setVisible(true)

}

public static void main(String[] args) {

new MyMenu()

}

}

class MenuAction implements ActionListener{

MyMenu m

MenuAction(MyMenu m){

this.m=m

}

public void actionPerformed(ActionEvent e){

String color=e.getActionCommand()

if(color=="红色")m.jp.setBackground(Color.red)

else if(color=="黄色")m.jp.setBackground(Color.yellow)

else if(color=="蓝色")m.jp.setBackground(Color.blue)

}

}

这个其实是可以的。

你给JMenu注册MenuListener(MenuEvent e)监视器,其中有三个方法

void menuCanceled(MenuEvent e)

取消菜单时调用。

void menuDeselected(MenuEvent e)

取消选择某个菜单时调用。

void menuSelected(MenuEvent e)

选择某个菜单时调用。

具体实现方法即可。

其实SWT中有现成的选项卡(TabFolder)组件实现的比这个要好很多...

后半部分没问题,前半部分有小问题:

改成下面:

-------------------------------------------------------------

import java.awt.BorderLayout

import java.awt.Container

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.InputEvent

import java.awt.event.ItemEvent

import java.awt.event.KeyEvent

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

import javax.swing.JCheckBoxMenuItem

import javax.swing.JFrame

import javax.swing.JMenu

import javax.swing.JMenuBar

import javax.swing.JMenuItem

import javax.swing.JRadioButtonMenuItem

import javax.swing.JScrollPane

import javax.swing.JTextArea

import javax.swing.KeyStroke

public class Si extends JFrame implements ActionListener {

JTextArea output

JScrollPane scrollPane

public Si() {

JMenuBar menuBar

JMenu menu, submenu

JMenuItem menuItem

JCheckBoxMenuItem cbMenuItem

JRadioButtonMenuItem rbMenuItem

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0)

}

})

Container contentPane = getContentPane()

output = new JTextArea(5, 30)

output.setEditable(false)

scrollPane = new JScrollPane(output)

contentPane.add(scrollPane, BorderLayout.CENTER)

menuBar = new JMenuBar()

setJMenuBar(menuBar)

menu = new JMenu("manage")

menuBar.add(menu)

submenu = new JMenu("color")

MyJMenuItem c = new MyJMenuItem("Red")

c.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,

InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK))

menuItem = c

submenu.add(menuItem)

MyJMenuItem b = new MyJMenuItem("Blue")

b.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,

InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK))

menuItem = b

submenu.add(menuItem)

menu.add(submenu)

menu.addSeparator()

cbMenuItem = new JCheckBoxMenuItem("check")

menu.add(cbMenuItem)

JMenuItem a = new JMenuItem("exit")

a.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,

InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK))

menuItem = a

menu.add(menuItem)

JMenu d = new JMenu("help")

JMenuItem d1=new JMenuItem("help")//这里为新增部分

d.add(d1)//这里为新增部分

d1.addActionListener(this)

menuBar.add(d)

}

public void actionPerformed(ActionEvent e) {

output.setText("帮助 ")// 显示不出来

}

public static void main(String[] args) {

Si window = new Si()

window.setTitle("MenuLookDemo")

window.setSize(450, 260)

window.setVisible(true)

}

public void itemStateChanged(ItemEvent e) {

throw new UnsupportedOperationException("Not supported yet.")

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11724573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存