import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;public class TransformTest
{
public static void main(String[] args)
{
JFrame frame = new TransformTestFrame();
frame.show();
}
}class TransformTestFrame extends JFrame implements ActionListener
{
private JScrollPane span = null;
private TransformPanel canvas;
private JRadioButton rotateButton;
private JButton zoomoutButton;
private JButton zoominButton;
private JButton normalButton;
public double x=1,y=1;
public TransformTestFrame()
{
setTitle("TransformTest");
setSize(400, 300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
Container contentPane = getContentPane();
canvas = new TransformPanel();
span = new JScrollPane(canvas);
span.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
span.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
span.setAutoscrolls(true);
JPanel buttonPanel = new JPanel();
contentPane.add(buttonPanel, "North");
}
class TransformPanel extends JPanel
{
private Image img = Toolkit.getDefaultToolkit().getImage("d:/Sunset.jpg");
public double x,y;
public TransformPanel()
{
t = new AffineTransform();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(img,0,0,getWidth(),getHeight(), this);
}
}为什么JSCrollpane 对图片(用paint方法)不起作用,而对ImageIcon有作用
怎么使在第一种显示图片内的JSCrollPane起作用
我想实现的效果就是像photoshop里放大缩小,同时还可以拖动。。
这问题好像可以归结成canvas里怎么使JSCrollPane起作用
http://www.cjsdn.com/post/view?bid=46&id=139614&sty=2&tpg=4&ppg=1&age=30
这样我图片放大后就会只显示部分图片
不过谢谢你的建议,谢谢!
现在我是首先设置canvas.setPreferredSize(new Dimension(600, 800));
经过放大后再canvas.setPreferredSize(new Dimension(1200, 1600));
但为什么要先动一下边框稍微缩放才能像滚动条变长???急!谢谢
现在我是首先设置canvas.setPreferredSize(new Dimension(600, 800));
经过放大后再canvas.setPreferredSize(new Dimension(1200, 1600));
但为什么要先动一下边框稍微缩放才能像滚动条变长???急!谢谢
validate() //使用 validate 方法会使容器再次布置其子组件。