当前位置:  技术问答>java相关

为什么滚动条出不来呢?

    来源: 互联网  发布时间:2015-09-14

    本文导语:  我在JPanel 的派生类中画一条直线, 并且把该类加入到JScrollPanel类中, 但是程序运行起来后,没有滚动条呀? 而且当拖动Applet的边角,改变其尺寸时,在dos窗口中出现一堆异常,为什么? 请指教 代码如下: import...

我在JPanel 的派生类中画一条直线,
并且把该类加入到JScrollPanel类中,
但是程序运行起来后,没有滚动条呀?
而且当拖动Applet的边角,改变其尺寸时,在dos窗口中出现一堆异常,为什么?

请指教

代码如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.applet.*;

public class ScrollTest extends Applet
{

    private ScrollablePicture picture;
    
    JPanel pa_main;
    
public void init()
   {
  

    // Set up the scroll pane.
        picture = new ScrollablePicture();
        JScrollPane pictureScrollPane = new JScrollPane(picture);
        



pa_main=new JPanel();
pa_main.setLayout(new BorderLayout());

pa_main.add(pictureScrollPane);

setLayout(new BorderLayout());
add(pa_main);

}

public class ScrollablePicture extends JPanel{ 

    private int maxUnitIncrement = 1;

    public ScrollablePicture() {
     
        
    }


    public void paintComponent(Graphics g)
{
 super.paintComponent(g);
 g.setColor(Color.red);
 g.drawLine(0,0,300,300);
}


    
}

}





|
pictureScrollPane.getViewPort().add("你想加的东西");
另外,JScrollPane的范围(也就是说它是否出现滚动条)是由它里面的组件决定的,而不是它里面的组件上的东西决定的。
你把picture放到pictureScrollPane中,就要用picture.setSize()来改变picture的大小,pictureScrollPane的大小自然相应地改变。

|
JPanel jp=new JPanel();
jp.setPreferredSize(new Dimension(1000,600));
JScrollPane jspp=new JScrollPane(jp);

|
错了,JScrollPane的构造函数错了,里面应该是一个JViewPort,你应该:
JScrollPane pictureScrollPane = new JScrollPane();
pictureScrollPane.getViewPoet.add("你想加的东西");

|
直接setSize不是很规范,Swing这样解决的:
参考http://www.csdn.net/Expert/TopicView1.asp?id=1042521

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3