java ,假如我新建了一个JFrame,又加了一个JPanel,我怎么怎么在JPanel上画图啊???

如题所述

你写一个类继承JPanel,重写paint()方法,在JFrame中加入你写的panel追问

假如我的类继承了JFrame呢???

追答

你再写一个类继承JPanel,例如
public class Demo_draw extends JFrame{

private MyPanel myPanel = null;
public Demo_draw(){
myPanel = new MyPanel();
this.add(myPanel);
this.setSize(500, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("绘图案例");
this.setVisible(true);
}

public static void main(String[] args) {
new Demo_draw();
}

class MyPanel extends JPanel{
//覆盖JPanel的paint方法
//Graphics 是绘图的重要类,可以把它理解成一只画笔
public void paint(Graphics g){
//调用父类函数完成初始化
super.paint(g);
//先画一个圆
g.drawOval(10, 10, 30, 30);
//画直线
g.drawLine(1, 1, 60, 80);
//画矩形
g.drawRect(60, 10, 40, 20);
//3D矩形
//g.draw3DRect(60, 10, 40, 20,true);

//设置颜色
g.setColor(Color.BLUE);
//添充矩形
g.fillRect(60, 40, 40, 20);
//画图片
Image image = Toolkit.getDefaultToolkit().getImage("images/lmy.jpg");
g.drawImage(image, 10, 100, 200, 200,this);

//画弧形
g.drawArc(220, 150, 120, 100, 0, 100);

//画文字
g.setColor(Color.BLUE);
g.setFont(new Font("仿宋",Font.BOLD,16));
g.drawString("这是我画的", 120, 20);
}
}
}

追问

super.paint(g);请问,这句话的具体的意思是什么啊???

追答

就是调用JPanel类中的paint()方法,如果没有写super.paint(g);这句,当执行MyPanel对象的paint()方法时,JPanel类中的paint()是不会执行的,因为被子类中的方法覆盖了;写了这句就可以即执行了父类中的方法也执行了你要实现的功能

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-20
public void paint(Graphics g){....}

java中,如果一个jframe中有多个jpanel,怎么对其中的某个jpanel添加背景...
自己创建一个JPanel类 继承JPanel 然后重写pain()方法 Image picture=new ImageIcon("图片路径").getImage();g.draw(picture,0,0,null);然后在你的窗体中直接调用你写JPanel类 在把这个JPanel 的属性(Opaque)设置为false 即显示设置为透明 ...

java 如何在JPanel上画线
可以定义全局的变量来保存Graphics。在组件处于可见的状态下使用getGraphics。代码如下:import java.awt.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JFrame;import javax.swing.JPanel;public class J extends JFrame implements KeyListener{ Graphics g=...

java中,如果一个jframe中有多个jpanel,怎么对其中的某个jpanel添加背景...
覆盖那个JPanel的paint,画张图上去

java中的jpanel怎么使用呢?
创建JPanel对象:首先,需要创建一个JPanel对象。可以通过调用其构造函数来创建。添加组件到JPanel:然后,可以将其他GUI组件添加到JPanel中。这可以通过调用JPanel的add方法来实现。设置布局管理器:为了有效地管理组件的布局,可以为JPanel设置一个布局管理器。常见的布局管理器有FlowLayout、BorderLayout等。

java中一个JFrame,一个JPanel,我想在JPanel中获取JFrame的一个img的...
2种方法:假设JFrame的类名叫做A 把JFrame里面存放img的变量设置成public static的静态变量,直接通过A.变量名来取得。你在初始化JPanel的时候,把JFrame当成参数传到JPanel里面去,这样就直接可以取道JFrame里面的参数了,记得把你的img声明成public的才行。

java 如何在jpanel上画垂直线、水平线、平行线?
定义一个类继承JPanel类,重写 JPanel 的 paint 方法,使用 Graphics 绘制线段,如下代码:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;class MyPanel extends JPanel {@Overridepublic void paint(Graphics g) {...

java如何在JPanel中重绘图像
在JPanel中画图要重写public void paintComponent(Graphics g){ super.paintComponent(g); \/\/\/}直接写到paintComponent里面的代码每次都会画图如果想改的话,应该在画图方法里面加一些控制代码,在其他地方改变一些变量的值,然后调用repaint();这才是正规的做法比如public class A extends JPanel{ private Color color=Col...

如何在Jpanel上画再继续画图
import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.util.*;import java.util.List;import javax.swing.*;public class huatu extends JFrame{ \/\/画布 JPanel aa=new JPanel(null);JPanel bb=new JPanel(null);JPanel cc=new JPanel(null);\/\/一个装载...

请教JAVA编程高手一个问题,如何在面板上绘图?
Panel Panel 是 Draw2D 中的一个通用容器图形,它可以包含子图形。您可以向一个 Panel 图形中添加许多图形,然后将这个 Panel 图形提供给 FigureCanvas。 DirectedGraph DirectedGraph 是一个 2-D 图形,拥有有限数量的 Node,每个 Node 都位于一些 Point 中,相邻的 Node 是通过 Edges 彼此连接在一起的。 当您想...

...调用jframe方法 比如把setTitle方法写在jpanel里?
如果是自定义JPanel 可以将 JFrame 传递给 JPanel, 然后可以在 JPanel 需要的时候调用 JFrame 中的方法,如下代码:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JPanel;class MyPanel extends JPanel {public MyPanel(JFrame frame) {frame.setTitle("在MyPanel设置...

相似回答