JPanel里是一张背景图片,然后把JLabel放在JFrame的正中央,并且充满整个JFrame,应该怎么写?
现在是这样的,应该怎么改?
import java.awt.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) {
JFrame mainframe = new JFrame("五子棋");
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel cp = (JPanel)mainframe.getContentPane();
cp.setLayout(new BorderLayout());
cp.add("Center",new mypanel());
mainframe.pack();
mainframe.setVisible(true);
}
}
class mypanel extends JPanel {
ImageIcon background = new ImageIcon("D:\\java documents\\Gobang\\棋盘.jpg");
public void paintComponent(Graphics g) {
g.drawImage(background.getImage(), 0, 0, this);
super.paintComponents(g);
}
}
按你说的方法成功实现了,谢谢
但是请问我那样写为什么不行呢?是哪一句的问题?
.pack()不是能够让父类窗口适应子类吗
你那样写的话,由于mypanel 的内容是直接画出来的,他不知道画出来的内容具体有多大。非要用你的方式的话,就要根据图片大小为mypanel 设置尺寸。但JLabel 就能自动画,我们又何必多此一举呢?
另外,我的方式能够支持动画的,你自己那样画的话,是不行的。