08/07/05 22:35:05
質問です。
画像ビューワみたいなのを作ってます。
画像を JScrollPane の中央に表示させたいんですけど、
ウィンドウのサイズをいじると左上に移動してしまいます。
これをなくしたいのですが。。。以下ソースコード(1/2)
package test;
import java.awt.*; import java.awt.image.*; import javax.swing.*; import javax.swing.event.*;
public class JSTest extends JFrame implements ChangeListener{
private JScrollPane sp;
private MyCanvas mc;
public JSTest(){
mc = new MyCanvas();
sp = new JScrollPane(mc);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(sp);
JSlider js = new JSlider(20, 300, 100);
js.addChangeListener(this);
getContentPane().add(js);
pack(); setVisible(true);
}
public void stateChanged(ChangeEvent e){
int newScale = ((JSlider)e.getSource()).getValue();
mc.setScale(newScale);
// サイズに合わせて位置を調整
sp.getViewport().setViewPosition(new Point(newScale - 100, newScale - 100));
repaint();
}
public static void main(String[] args){ new JSTest();}