我加入一张图片做JFrame的背景 要求Panel类ChessPad要在背景的前端 但我加入背景图后 菜单条和菜单都不能正常显示(需要鼠标点击才显示) 求达人帮我修改 跪谢!
另外,为什么我把class ChessPad extends Panel的Panel改为JPanel 后棋盘为什么会显示不出来?
[code=Java][/code]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.Color;
import java.lang.Object;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
//创建棋盘的类
class ChessPad extends JPanel
{
Button button=new Button("重新开局");
TextField text_1=new TextField("请黑棋下子");
ChessPad()
{ setSize(440,440);
setLayout(null);
this.setBackground(new Color(197,97,12)); //注意这里不要漏写 new
add(button);
button.setBounds(10,3,60,26);
add(text_1);
text_1.setBounds(90,3,90,24);
text_1.setEditable(false);
}
public void paint(Graphics g) //绘制棋盘方格
{ for(int i=30;i<=410;i=i+20) //画横线
{ g.drawLine(30,i,410,i);
}
for(int j=30;j<=410;j=j+20) //画竖线
{ g.drawLine(j,30,j,410);
}
}
}
public class WuZiQi02 extends JFrame
{
JMenuBar menubar;
JMenu menu1,menu2;
ChessPad chesspad=new ChessPad();
WuZiQi02()
{
super("简易五子棋"); //程序框标题
menubar=new JMenuBar();
menubar.setOpaque(true); //菜单条是否透明
menu1=new JMenu("游戏");
menu2=new JMenu("帮助");
menubar.add(menu1);
menubar.add(menu2);
setJMenuBar(menubar);
setVisible(true);
setLayout(null);
add(chesspad);
chesspad.setBounds(70,90,440,440);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);
}
});
pack();
setSize(900,750);
validate();
}
//设置Frame的背景图
public void paint(Graphics g){
BufferedImage image = null;
try{
image = ImageIO.read(new File("icons/d.jpg") ); //图片路径
}
catch(IOException e){
e.printStackTrace();
}
g.drawImage(image,0,70,this);
//g.drawImage(image,0,0,this.getWidth(), this.getHeight(),null); 设置适应窗口
}
public static void main(String args[])
{ WuZiQi02 chess=new WuZiQi02();
}
}
------解决方案--------------------
图片路径 一定是 磁盘下的绝对路径
image = ImageIO.read(new File("D:\\icons\\d.jpg")); // 图片路径
换成绝对路径就解决了
------解决方案--------------------
你把绘制图片的方法。放在绘制棋盘的方法,,后面调用。。也就是说,,要让程序选调用绘制图片的方法,再调用绘制棋盘的方法
------解决方案--------------------
我函数可能写的不对,不够编译器会提示你的。
------解决方案--------------------
我用SWT开发时用也遇到一个问题,就是添加datechooser的时候他总时报file not found,郁闷啊,求指导。。。
------解决方案--------------------
为何不分2个panel呢 menu放一个panel 图片放另一个panel