java中我想要在frame里的scrollPane里的panel上画图

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:45:04
画图的代码写在了paint里,怎么设置让它画在panel上,创建panel和scrollPane代码写在哪里(paint函数里,我是用Graphics类,即g2=(Graphics2D)getGraphics())

paint是在panel里画的,别放scrollPane的paint里画。

/**
* 重绘DIALOG
*/
public void paint(Graphics g) {
super.paint(g);
this.getGraphics().drawImage(img1, 40, 25, imageLength, imageWidth, this);
}
this指你所需要的那个PANEL对象

不能放在scrollPane里,要放在scrollPane所setViewportView()的对象里!

做了个小例子给你参考。

import java.awt.*;

import javax.swing.*;

class DrawPanel extends JPanel{

public DrawPanel() {
setPreferredSize(new Dimension(200,200));
}

public void paint(Graphics g){

g.setColor(Color.BLACK);
g.drawOval(100, 100, 1800, 800);

}

}

public class MyFrame extends JFrame{

public static void main(String[] args){

MyFrame demo = new MyFrame();

DrawPanel drawPanel = new DrawPanel();

JScrollPane scrollPane = new JScrollPane(drawPanel);
scrollPane.setSize(500,768);
demo.getCo