java究竟怎么在JFrame上画东西?

假如我现在有一张背景图片在D:\\111.jpg。那我应该怎么样才可以用paint()方法在JFrame上显示这张图片,并且在这张图片上画点东西(例如线之类)?... 假如我现在有一张背景图片在D:\\111.jpg。那我应该怎么样才可以用paint()方法在JFrame上显示这张图片,并且 在这张图片上画点东西(例如线之类)? 展开
 我来答
小傻

2015-11-06 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

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);
   }
}

 运行结果如下:

周宅伦
2011-10-04 · TA获得超过121个赞
知道答主
回答量:89
采纳率:0%
帮助的人:144万
展开全部
直接重写JFrame的paint()方法不知道可不可以,一般是JFrame里放一个JPanel,然后重写JPanel的paint()方法。
JPanel加背景的话先用ImageIO类把图片读到BufferedImage里,然后用paint方法中的Graphics类画出来。
画东西的话也是用paint方法中的Graphics类,我觉得最好再写一个继承自JPanel的MyPanel,这个类需要有一些字段记录画过的东西,然后再在paint方法中画出来。
这只是如果让我去做这个东西的一点想法,欢迎讨论 :)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Learn_11
2011-10-04 · TA获得超过153个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:195万
展开全部
//重写paint 方法
public void paint(Graphics g){
//
g.drawImage(img,0,0); //画图片
g.drawRect(0,0,100,100); //画矩形
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式