当前位置: 技术问答>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);
}
}
}
并且把该类加入到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的大小自然相应地改变。
另外,JScrollPane的范围(也就是说它是否出现滚动条)是由它里面的组件决定的,而不是它里面的组件上的东西决定的。
你把picture放到pictureScrollPane中,就要用picture.setSize()来改变picture的大小,pictureScrollPane的大小自然相应地改变。
|
JPanel jp=new JPanel();
jp.setPreferredSize(new Dimension(1000,600));
JScrollPane jspp=new JScrollPane(jp);
jp.setPreferredSize(new Dimension(1000,600));
JScrollPane jspp=new JScrollPane(jp);
|
错了,JScrollPane的构造函数错了,里面应该是一个JViewPort,你应该:
JScrollPane pictureScrollPane = new JScrollPane();
pictureScrollPane.getViewPoet.add("你想加的东西");
JScrollPane pictureScrollPane = new JScrollPane();
pictureScrollPane.getViewPoet.add("你想加的东西");
|
直接setSize不是很规范,Swing这样解决的:
参考http://www.csdn.net/Expert/TopicView1.asp?id=1042521
参考http://www.csdn.net/Expert/TopicView1.asp?id=1042521
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。