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

2024-12-13 01:56:51
推荐回答(3个)
回答1:

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

 运行结果如下:

回答2:

直接重写JFrame的paint()方法不知道可不可以,一般是JFrame里放一个JPanel,然后重写JPanel的paint()方法。
JPanel加背景的话先用ImageIO类把图片读到BufferedImage里,然后用paint方法中的Graphics类画出来。
画东西的话也是用paint方法中的Graphics类,我觉得最好再写一个继承自JPanel的MyPanel,这个类需要有一些字段记录画过的东西,然后再在paint方法中画出来。
这只是如果让我去做这个东西的一点想法,欢迎讨论 :)

回答3:

//重写paint 方法
public void paint(Graphics g){
//
g.drawImage(img,0,0); //画图片
g.drawRect(0,0,100,100); //画矩形
}