java怎么在菜单设置背景,java使用layerpane设置背景图片

本文介绍了如何在Java中使用JFrame和ImageIcon实现五子棋界面的定制,包括设置透明背景、动态添加图片和菜单操作。作者展示了两种方法,一是通过设置图像大小并添加到JLabel,二是创建JMenuBar和JMenuItem来实现菜单功能,通过ActionListener处理不同菜单项的响应。
摘要由CSDN通过智能技术生成

两种读图的方法

Image  grass=new ImageIcon("pure-grass.gif").getImage();

Image img=Toolkit.getDefaultToolkit().getImage("board.jpg");

让屏幕大小区匹配图片

bg=new ImageIcon("board1.jpg");

JLabel lable=new JLabel(bg);

imagePanel=(JPanel)getContentPane();

//设置为透明

imagePanel.setOpaque(false);

imagePanel.setLayout(null);

lable.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());

getLayeredPane().add(lable,new Integer(Integer.MIN_VALUE));

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(bg.getIconWidth(), bg.getIconHeight());

还有另一种方法,就是让图片伸展

附上带菜单和背景的完整代码

package fiveChess;

import java.awt.Button;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.HeadlessException;

import java.awt.Image;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

//import chessTest.ChessBoard;

public class MainFrame extends JFrame{

private ChessBoard chessBoard;

private JMenuBar menubar;

private JMenu sysmenu;

private JMenuItem startMenuItem,exitMenuItem,backMenuItem;

private Image bg;

public MainFrame() throws HeadlessException {

super("五子棋");

//Container container=getContentPane();

Dimension dimension=new Dimension(500, 500);

setSize(dimension);

setLocation(400,150);

chessBoard=new ChessBoard();

Container contentpane=this.getContentPane();

//contentpane.add(chessBoard);

Lis lis=new Lis();

menubar=new JMenuBar();

sysmenu=new JMenu("菜单");

startMenuItem=new JMenuItem("重新开始");

exitMenuItem=new JMenuItem("退出");

backMenuItem=new JMenuItem("悔棋");

startMenuItem.addActionListener(lis);

exitMenuItem.addActionListener(lis);

backMenuItem.addActionListener(lis);

sysmenu.add(startMenuItem);

sysmenu.add(exitMenuItem);

sysmenu.add(backMenuItem);

menubar.add(sysmenu);

setJMenuBar(menubar);

bg=new ImageIcon("board1.jpg").getImage();

ImageIcon imageIcon=new ImageIcon(bg);

JLabel lable=new JLabel(imageIcon);

lable.setBounds(0, 0, dimension.width, dimension.height);

getLayeredPane().add(lable,new Integer(Integer.MIN_VALUE));

JPanel jp=(JPanel)this.getContentPane();

jp.setOpaque(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

private class Lis implements ActionListener{

public void actionPerformed(ActionEvent e){

Object obj=e.getSource();

if(obj==startMenuItem){

System.out.println("重新开始");

}

else if(obj==exitMenuItem){

System.out.println("退出");

}

else if(obj==backMenuItem){

System.out.println("悔棋");

}

}

}

public static void main(String[] args){

MainFrame mainframe=new MainFrame();

}

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值