返回信息流我在面板上画了一些线,但面板比主框大,所以使用了JScrollPane。
但是现在问题是 一移动滚动条,出来的图形就花了。如图所示,
请教各位有什么办法解决吗?谢谢
这是一条镜像帖。来源:北邮人论坛 / java / #12515同步于 2009/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
作图在请教,谢谢!
byrmaster
2009/12/2镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class PaintSin1 extends JFrame
{
public PaintSin1()
{
super("PaintSin1");
setSize(400,300);
setLocation(100,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp=new JPanel();
jp.setLayout(new BorderLayout());
PPanel pp2=new PPanel();
jp.add(new JScrollPane(pp2),"Center");
setContentPane(jp);
setVisible(true);
}
public static void main(String[] args)
{
new PaintSin1();
}
}
class PPanel extends JPanel
{
private static int sn=10;
private static int pn=10;
public PPanel()
{
super();
sn=10;
pn=10;
int wid=40*(pn+4)+40;
int hei=30*(sn+4)+40;
setPreferredSize(new Dimension(wid,hei));
setMaximumSize(new Dimension(wid,hei));
setMinimumSize(new Dimension(wid,hei));
}
public void paint(Graphics g)
{
for(int i=0;i<=sn+4;i++)
{
g.drawLine(20, 30*i+20, 40*(pn+4)+20, 30*i+20);
}
//画竖线
for(int i=0;i<=pn+4;i++)
{
g.drawLine(20+i*40, 20, 20+i*40, 30*(sn+4)+20);
}
}
}
Frame 框小,我就想这么大。 但是画图的面板大,之后一移动滚动条就花了。
望指教,谢谢
public void paint(Graphics g)
{
for(int i=0;i<=sn+4;i++)
{
g.drawLine(20, 30*i+20, 40*(pn+4)+20, 30*i+20);
}
//画竖线
for(int i=0;i<=pn+4;i++)
{
g.drawLine(20+i*40, 20, 20+i*40, 30*(sn+4)+20);
}
jsp.repaint();
}
jsp是你要set进来的JScrollPane