java究竟怎么在JFrame上画东西?
假如我现在有一张背景图片在D:\\111.jpg。那我应该怎么样才可以用paint()方法在JFrame上显示这张图片,并且在这张图片上画点东西(例如线之类)?...
假如我现在有一张背景图片在D:\\111.jpg。那我应该怎么样才可以用paint()方法在JFrame上显示这张图片,并且 在这张图片上画点东西(例如线之类)?
展开
3个回答
展开全部
java在JFrame上画东西,主要是使用paint方法,代码如下:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Draw extends JFrame{
JPanel jPanel=new JPanel();
public Draw() {
jPanel.setBackground(Color.red);
add(jPanel);
Drawation drawaction=new Drawation();//添加画图,把上面jpanel的设置给覆盖了;要是先添加画图再添加
add(drawaction); //jpanel则把画图覆盖了
}
public static void main(String[] args){
Draw draw=new Draw();
draw.setTitle("abc");
draw.setSize(300,300);
draw.setVisible(true);
draw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class Drawation extends JPanel{
public void paintComponent(Graphics g){
super.paintComponents(g);
g.drawString("agagh", 50, 45);
}
}
运行结果如下:
展开全部
直接重写JFrame的paint()方法不知道可不可以,一般是JFrame里放一个JPanel,然后重写JPanel的paint()方法。
JPanel加背景的话先用ImageIO类把图片读到BufferedImage里,然后用paint方法中的Graphics类画出来。
画东西的话也是用paint方法中的Graphics类,我觉得最好再写一个继承自JPanel的MyPanel,这个类需要有一些字段记录画过的东西,然后再在paint方法中画出来。
这只是如果让我去做这个东西的一点想法,欢迎讨论 :)
JPanel加背景的话先用ImageIO类把图片读到BufferedImage里,然后用paint方法中的Graphics类画出来。
画东西的话也是用paint方法中的Graphics类,我觉得最好再写一个继承自JPanel的MyPanel,这个类需要有一些字段记录画过的东西,然后再在paint方法中画出来。
这只是如果让我去做这个东西的一点想法,欢迎讨论 :)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//重写paint 方法
public void paint(Graphics g){
//
g.drawImage(img,0,0); //画图片
g.drawRect(0,0,100,100); //画矩形
}
public void paint(Graphics g){
//
g.drawImage(img,0,0); //画图片
g.drawRect(0,0,100,100); //画矩形
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询