返回信息流我想在一个JPanel上画一些线,将JPanel放在JFrame的内容面板中但是这个JPanel的大小要比JFrame框大,想使用JScrollPane但是就是不行啊
图形只能显示一部分,请教有什么好方法吗
最好可以加滑动条显示图形
谢谢,望大家指教一下
这是一条镜像帖。来源:北邮人论坛 / java / #12502同步于 2009/12/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请教作图问题,谢谢
byrmaster
2009/12/1镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class PaintSin1 extends JFrame
{
public PaintSin1()
{
super("PaintSin1");
setSize(700,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 JLabel
{
public PPanel()
{
super();
setSize(700,600);
}
public void paint(Graphics g)
{
int x,y,x1,y1;
x1=0;y1=0;
g.setColor(Color.red);
g.drawRect(100,100,500,400);
g.setColor(Color.black);
g.drawLine(102,300,598,300);
g.drawLine(350,102,350,498);
g.setColor(Color.yellow);
for(x=0;x<=200;x+=2)
{
y=(int)(Math.sin(x*3.14159/100)*190);
g.drawLine(x1+350,300-y1,x+350,300-y);
g.drawLine(-x1+350,300+y1,-x+350,300+y);
x1=x;
y1=y;
}
}
public double f(double x)
{
return (Math.cos(x/12.0)*200.0/4+100);
}
}
大家帮我看看为什么new JScrollPane(pp2) 不管用呢?
setPreferedSize(700,600)
setMaximumSize(700,600)
setMinimumSize(700,600)
也许会有用