如何给Java窗体添加菜单栏

如何给Java窗体添加菜单栏,第1张

以windows系统中的记事本为例,菜单栏中的【文件】,【编辑】等全部叫一个菜单条;在Java中用JMenuBar表示;

菜单条中每一个具体的项叫做一个菜单,在Java中用JMenu表示;

菜单中的每一项叫做菜单项,Java中用JMenuItem表示;

我们在窗体中创建菜单栏,首先需要创建菜单条,先声明,然后在构造方法中初始化;代码为:JMenuBar bar = new JMenuBar()

然后创建菜单,也菜单条一样,也是先声明,再new;代码为:JMenu menu = new JMenu("文件")

接下来创建菜单项,和上面的一样,先声明,再new;代码为:JMenuItem item = new JMenuItem("新建")

创建好每一个部分之后,我们需要将菜单项添加到菜单中,然后将菜单添加到菜单条中;代码为:

menu.add(item)

bar.add(menu)

然后将整个菜单条添加到窗体中,代码为:

this.setJMenuBar(bar)

这样就可以实现在窗体中添加菜单条了,看一下效果吧。

如果代码运行没有报错,那就是添加成功了。

只是展示的时候,由于你的menubar没内容,所以看不出效果。

你可以再menuBar中添加一个JMenu,然后再看看效果。

PS:java桌面程序,java自己都放弃了。无论是学习,还是工作,都不推荐从这个方向开始入门。

import java.awt.BorderLayout

import java.awt.Color

import java.awt.Container

import java.awt.Dimension

import java.awt.FlowLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JMenu

import javax.swing.JMenuBar

import javax.swing.JMenuItem

import javax.swing.JPanel

public class jiemian extends JFrame

{

private JLabel jl = new JLabel ("第一关")

private Container container = new JPanel ()

private static Thread t

int time = 0

public jiemian ()

{

JMenuBar menuBar = new JMenuBar ()

setJMenuBar (menuBar)

JMenu[] menu = new JMenu[] { new JMenu ("游戏"), new JMenu ("帮助") }

JMenuItem[] menuItem =

new JMenuItem[] { new JMenuItem ("新游戏"), new JMenuItem ("重新开始"), new JMenuItem ("记录"),

new JMenuItem ("退出"), new JMenuItem (" *** 作方法") }

for ( int i = 0 i < 2 i++ )

{

menuBar.add (menu[i])

}

for ( int i = 0 i < 4 i++ )

{

menu[0].add (menuItem[i])

}

menu[1].add (menuItem[4])

menuItem[3].addActionListener (new ActionListener ()

{

public void actionPerformed ( ActionEvent e )

{

System.exit (0)

}

})

t = new Thread (new Runnable ()

{

public void run ()

{

while (time <= 200)

{

if (time % 2 == 0)

{

container.add (jl)

jl.setBounds (200, 200, 80, 80)

}

else

jl.setBounds (0, 0, 0, 0)

try

{

Thread.sleep (1000)

}

catch (Exception e)

{

e.printStackTrace ()

}

time++

if (time == 200)

{

time = 0

}

}

}

})

t.start ()

this.setLayout (null)

container.setLayout (null)

container.setSize (500, 500)

container.setBackground (Color.BLUE)

this.add (container)

this.setTitle ("坦克大战")

this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE)

this.setSize (700, 600)

this.setLocationRelativeTo (null)

this.setVisible (true)

}

public static void main ( String[] args )

{

new jiemian ()

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存