紧急求助-- 关于JPanel加载图片问题? 俺想在面板固定位置加栽个小图片??? JPanel1占据整个JFrame JPanel2放在JPanel1上 JPanel2显示图片 怎样实现??? 望众位大侠给予指点 小弟这先谢过 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Graphics;import java.awt.GridLayout;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel;public class Test extends JFrame { private static final long serialVersionUID = 6470477702039762986L; private JPanel pane = null; // 要占据整个JFrame的Panel public Test(){ super("Image Test"); pane = new JPanel(new GridLayout(2, 2)); // 可以设置一个适合的布局管理器(现在是一个“田”字形的布局) //pane = new JPanel(new BorderLayout()); // 不同的布局有不同的效果,不知道你想要做成什么样子的,不好建议啊,布局管理是GUI的核心,建议多花些时间学习 pane.add(new MyPane(new ImageIcon("D:/01.jpg"))); // 将要画图的Panel放到“田”字的左上角 pane.add(new MyPane(new ImageIcon("D:/02.jpg"))); // 继续放 pane.add(new MyPane(new ImageIcon("D:/03.jpg"))); // 继续放 pane.add(new MyPane(new ImageIcon("D:/04.jpg"))); // 放完了 this.getContentPane().add(pane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(new Dimension(300, 200)); this.setVisible(true); } public static void main(String[] args) { new Test(); } class MyPane extends JPanel { private static final long serialVersionUID = 2399443539634707320L; private ImageIcon image = null; // 要画的图形 /** * 构造,接收ImageIcon参数 * @param image 要画的图形参数 */ public MyPane(ImageIcon image){ this.image = image; } /** * 重载printComponent(Graphics g)方法来画图 */ protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image.getImage(), 10, 10, 50, 50, this); // 将固定大小的Image画到固定的位置 } }} 老兄 你给的代码怎么在我这跑不起来啊 我的思路是jPanel1布局为xyLayout 在它低角写个jPanel2面板 图片显示在jPanel2中 图片为一个 请给予指导 我懂了一头午还是没结果 我原来的代码为一个主菜单项 填充在JFrame中 jPanel1和jPanel2都是后添加的 代码正常,我测试过发的,你要把4个图片的地址改成你的窗口显示后再添加组件需要重新布局,看看API Docs,其中Container类的validate()方法 谁有liferay的开发平台软件下载地址 啊 这都是些什么啊? 关于jtree节点的展开 新人请教一个简单的Reflection问题 高手进来帮我看看吧,关于调用和参数的问题 abstract class 生成对象??? 问个关于JBUTTON的问题, 请教!请教!! 大侠帮我看看这段程序错在什么地方啊 谁能告诉我当调用List.add(String)后是在哪些函数中实现重画的? 各位老师,我想在struts中的forward中转回right.jsp带参数的转,怎么转? 有没有什么方法把一张彩色图片,变成黑色图片.
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;public class Test extends JFrame { private static final long serialVersionUID = 6470477702039762986L;
private JPanel pane = null; // 要占据整个JFrame的Panel public Test(){
super("Image Test");
pane = new JPanel(new GridLayout(2, 2)); // 可以设置一个适合的布局管理器(现在是一个“田”字形的布局)
//pane = new JPanel(new BorderLayout()); // 不同的布局有不同的效果,不知道你想要做成什么样子的,不好建议啊,布局管理是GUI的核心,建议多花些时间学习
pane.add(new MyPane(new ImageIcon("D:/01.jpg"))); // 将要画图的Panel放到“田”字的左上角
pane.add(new MyPane(new ImageIcon("D:/02.jpg"))); // 继续放
pane.add(new MyPane(new ImageIcon("D:/03.jpg"))); // 继续放
pane.add(new MyPane(new ImageIcon("D:/04.jpg"))); // 放完了
this.getContentPane().add(pane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(new Dimension(300, 200));
this.setVisible(true);
} public static void main(String[] args) {
new Test();
}
class MyPane extends JPanel { private static final long serialVersionUID = 2399443539634707320L;
private ImageIcon image = null; // 要画的图形
/**
* 构造,接收ImageIcon参数
* @param image 要画的图形参数
*/
public MyPane(ImageIcon image){
this.image = image;
}
/**
* 重载printComponent(Graphics g)方法来画图
*/
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image.getImage(), 10, 10, 50, 50, this); // 将固定大小的Image画到固定的位置
}
}
}
窗口显示后再添加组件需要重新布局,看看API Docs,其中Container类的validate()方法