100---------JScrollPane中的滚动条为何不行啦?熟悉swing控件的高手请让我送点分

boylin109 2004-11-05 03:32:39
我想在JScrollPane中显示图片.图片有放大缩小等功能.可惜总是不行~~

给出好的建议也给分得~~~


代码如下: class image extends Canvas
{ Image buffer_img,img1;
Graphics bg;
int ox=0,oy=0; //为了以后可以平移
image()
{ img1=getToolkit().getImage("f://java/s22.jpg");
//一张要在JScrollPane的getviewport中显示的图
this.setSize(1024,768);
this.setBackground(Color.black);
}
public void paint(Graphics g)
{ buffer_img=createImage(1024,768);
bg=buffer_img.getGraphics();
bg.drawImage(img1,ox,oy,ox+1024,oy+768,this);
g.drawImage(buffer_img,0,0,this);
} //以上是自己定义的image类,为了要自己想要的图

}
public class Home extends Applet {
private boolean isStandalone = false;
JToggleButton jToggleButtonZoomOut = new JToggleButton();
JToggleButton jToggleButtonZoomIn = new JToggleButton();
JToggleButton jToggleButtonZoomPan = new JToggleButton();
JToggleButton jToggleButtonZoomNull = new JToggleButton();
JPanel jPanel1 = new JPanel();
BoxLayout2 boxLayout21 = new BoxLayout2();
JToggleButton jToggleButtonZoomRec = new JToggleButton();
JButton jButton1 = new JButton();
image imgl =new image() ;
JScrollPane jScrollPaneMap = new JScrollPane();


//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}

//Construct the applet
public Home() {
}

//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}

//Component initialization
private void jbInit() throws Exception {
// jViewport1 = jScrollPaneMap.getViewport();
jButton1.setBounds(new Rectangle(540, 5, 76, 25));
jButton1.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/NEXT.gif")));
jButton1.setText("修 改");
jScrollPaneMap.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPaneMap.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jScrollPaneMap.setViewportBorder(BorderFactory.createLineBorder(Color.black));
jScrollPaneMap.setAutoscrolls(true);
jScrollPaneMap.setDebugGraphicsOptions(0);
jScrollPaneMap.setDoubleBuffered(false);
jScrollPaneMap.setToolTipText("");
jScrollPaneMap.setVerifyInputWhenFocusTarget(true);
jScrollPaneMap.setBounds(new Rectangle(0, 30, 640, 450));

this.setVisible(true);
jPanel1.setBounds(new Rectangle(0, 0, 136, 35));
jPanel1.add(jToggleButtonZoomNull, null);
jPanel1.add(jToggleButtonZoomOut, null);
jPanel1.add(jToggleButtonZoomIn, null);
jPanel1.add(jToggleButtonZoomPan, null);
jPanel1.add(jToggleButtonZoomRec, null);
jScrollPaneMap.getViewport().add(imgl, null);//**加的好好的为什么老见不到滚动条***//
this.add(jButton1, null);
this.add(jScrollPaneMap , null);//***********************关键问题**************//



this.setLayout(null);
jToggleButtonZoomOut.setBackground(Color.white);
jToggleButtonZoomOut.setAlignmentX((float) 0.5);
jToggleButtonZoomOut.setMaximumSize(new Dimension(25, 25));
jToggleButtonZoomOut.setMinimumSize(new Dimension(25, 25));
jToggleButtonZoomOut.setVerifyInputWhenFocusTarget(false);
jToggleButtonZoomOut.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/ZOOM_OUT.gif")));
jToggleButtonZoomOut.setMnemonic('0');
jToggleButtonZoomOut.setText("");
jToggleButtonZoomIn.setAlignmentX((float) 0.5);
jToggleButtonZoomIn.setMaximumSize(new Dimension(25, 25));
jToggleButtonZoomIn.setMinimumSize(new Dimension(25, 25));
jToggleButtonZoomIn.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/ZOOM_IN.gif")));
jToggleButtonZoomIn.setText("");
jToggleButtonZoomPan.setAlignmentX((float) 0.5);
jToggleButtonZoomPan.setMaximumSize(new Dimension(25, 25));
jToggleButtonZoomPan.setMinimumSize(new Dimension(25, 25));
jToggleButtonZoomPan.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/ZOOM_PAN.gif")));
jToggleButtonZoomPan.setText("");
jToggleButtonZoomPan.setVerticalAlignment(javax.swing.SwingConstants.CENTER);
jToggleButtonZoomPan.setVerticalTextPosition(javax.swing.SwingConstants.CENTER);
jToggleButtonZoomNull.setAlignmentX((float) 0.5);
jToggleButtonZoomNull.setMaximumSize(new Dimension(25, 25));
jToggleButtonZoomNull.setMinimumSize(new Dimension(25, 25));
jToggleButtonZoomNull.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/ZOOM_NULL.gif")));
jToggleButtonZoomNull.setText("");
jPanel1.setAlignmentX((float) 0.1);
jPanel1.setAlignmentY((float) 0.1);
jPanel1.setLayout(boxLayout21);
jToggleButtonZoomRec.setBackground(Color.white);
jToggleButtonZoomRec.setAlignmentX((float) 0.5);
jToggleButtonZoomRec.setMaximumSize(new Dimension(25, 25));
jToggleButtonZoomRec.setMinimumSize(new Dimension(25, 25));
jToggleButtonZoomRec.setOpaque(false);
jToggleButtonZoomRec.setActionCommand("jToggleButton_ZoomRec");
jToggleButtonZoomRec.setIcon(new ImageIcon(new java.net.URL("file:///F:/java/work/src/ICON/ZOOM_REC.gif")));
jToggleButtonZoomRec.setSelected(false);
jToggleButtonZoomRec.setSelectedIcon(null);
jToggleButtonZoomRec.setText("");
jToggleButtonZoomRec.addActionListener(new Home_jToggleButtonZoomRec_actionAdapter(this));
this.add(jPanel1, null);
}

//Start the applet
public void start() {
}

//Stop the applet
public void stop() {
}

//Destroy the applet
public void destroy() {
}

//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}

//Get parameter info
public String[][] getParameterInfo() {
return null;
}

//Main method
public static void main(String[] args) {
Home applet = new Home();
applet.isStandalone = true;
Frame frame;
frame = new Frame();
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(640,500);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}

void jToggleButtonZoomRec_actionPerformed(ActionEvent e) {

}


}

class Home_jToggleButtonZoomRec_actionAdapter implements java.awt.event.ActionListener {
Home adaptee;

Home_jToggleButtonZoomRec_actionAdapter(Home adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jToggleButtonZoomRec_actionPerformed(e);
}
}
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
boylin109 2004-11-19
  • 打赏
  • 举报
回复
自己顶
boylin109 2004-11-18
  • 打赏
  • 举报
回复
还是不行的~~不过谢谢楼上啦.给你20分
boylin109 2004-11-15
  • 打赏
  • 举报
回复
谢谢啦~~!我试试
皮鲁 2004-11-15
  • 打赏
  • 举报
回复
不行就自己加ScrollBar 撒

final JScrollBar scrollBar1 = jScrollPaneMap.getVerticalScrollBar();
final JScrollBar scrollBar2 = jScrollPaneMap.getHorizontalScrollBar();

。。。
然后给自己的scrollbar加listener

scrollBar1.addAdjustmentListener(new ScrollBarActionAdapter(this));

。。。。
class ScrollBarActionAdapter
implements java.awt.event.AdjustmentListener {
MainFrame adaptee;

ScrollBarActionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}

public void adjustmentValueChanged(AdjustmentEvent e) {
adaptee.scrollAdjustmentValueChanged(e);
}
}

。。
void scrollAdjustmentValueChanged(AdjustmentEvent e){
...
}
GJA106 2004-11-13
  • 打赏
  • 举报
回复
你自己去看吧。

1.Advanced Imaging。java图像处理包提供很多例子,放大/缩小....都有。
2.安装目录\j2sdk\demo\jfc\Java2D
boylin109 2004-11-06
  • 打赏
  • 举报
回复
???why
boylin109 2004-11-05
  • 打赏
  • 举报
回复
java 族的就看你们的了.帮帮忙吧~~


提出好的建议也给分得.还有看看.这个作成applet行吗??

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧