我在JFrame里加有一个JPane:
JFrame有两种大小的背景图片,
如果JFrame原来是大的,能正常地在JPane对象里绘图; 当JFrame改小了,JPane也能正常绘图; 再把JFrame变大, JPane也正常.
如果JFrame对象原来是小的,JPane也能正常绘图; 当我把JFrame改为大图片的尺寸时, JPane的绘图区域不会变大, 还是原来的大小.请问如何处理?
JFrame有两种大小的背景图片,
如果JFrame原来是大的,能正常地在JPane对象里绘图; 当JFrame改小了,JPane也能正常绘图; 再把JFrame变大, JPane也正常.
如果JFrame对象原来是小的,JPane也能正常绘图; 当我把JFrame改为大图片的尺寸时, JPane的绘图区域不会变大, 还是原来的大小.请问如何处理?
这个可以使用布局管理器来完成。
FormListener() {}
public void componentHidden(ComponentEvent evt) {
} public void componentMoved(ComponentEvent evt) {
} public void componentResized(ComponentEvent evt) {
if (evt.getSource() == FrameBGUTest.this) {
frameComponentResized(evt);
}
} public void componentShown(ComponentEvent evt) {
}
}重写JPanel的画图方法:pelBg = new JPanel (){
protected void paintComponent(Graphics g){
super.paintComponent(g);
Image img = Toolkit.getDefaultToolkit().getImage("config/resource/profile.jpg");
g.drawImage(img, 0, 0, this.getParent().getWidth(), this.getParent().getHeight(), this);
}
};窗口改变大小事件,当触发时,重绘JPanel图片:private void frameComponentResized(ComponentEvent evt) {//GEN-FIRST:event_frameComponentResized
if (evt.getID() == ComponentEvent.COMPONENT_RESIZED) {
this.pelBg.repaint();
}
}