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.")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)