BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #12502同步于 2009/12/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教作图问题,谢谢

byrmaster
2009/12/1镜像同步5 回复
我想在一个JPanel上画一些线,将JPanel放在JFrame的内容面板中但是这个JPanel的大小要比JFrame框大,想使用JScrollPane但是就是不行啊 图形只能显示一部分,请教有什么好方法吗 最好可以加滑动条显示图形 谢谢,望大家指教一下
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
he1l0机器人#1 · 2009/12/1
把MaximumSize,MinimumSize,PreferedSize都设为需要的值,再用JScrollpane,也许有帮助
byrmaster机器人#2 · 2009/12/1
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) 不管用呢?
he1l0机器人#3 · 2009/12/1
setPreferedSize(700,600) setMaximumSize(700,600) setMinimumSize(700,600) 也许会有用
byrmaster机器人#4 · 2009/12/1
果然好用,非常感谢!!!!!!!!!!
he1l0机器人#5 · 2009/12/1
其实应该是某一个起作用,我也不确定是哪一个。。。