java swing jScrollPane1的问题,此程序的jScrollPane1无法滚动,如何让他滚动

/*
* NewClass.java
*
* Created on 2008年7月13日, 上午10:09
* @author 潘朝阳
*/
package org.jivesoftware.sparkimpl.plugin.syremind.sycomponent;

import javax.swing.*;
import java.awt.Color;

import com.sun.org.apache.bcel.internal.classfile.JavaClass;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class NewClass extends JFrame {

/** Creates a new instance of NewClass */
public NewClass() {
init();
}

public void init() {
//实例化JPanel等一些组件 java swing jScrollPane1的问题,此程序的jScrollPane1无法滚动,如何让他滚动
JPanel pan1 = new JPanel();
javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
JButton jb1 = new JButton("one in pan1");
JButton jb2 = new JButton("two in pan1");
JButton jb3 = new JButton("one out panel");
JButton jb4 = new JButton("two out panel");
//setBound()坐标是相对于pan1而言的
jb1.setBounds(10, 0, 100, 30);
jb2.setBounds(10, 30, 100, 30);
//得到容器为什么不需要实例化?可能是因为每个窗口都有这个对象
/*Container cont = getContentPane();
//将pan1添加到容器中
cont.add(jScrollPane1, BorderLayout.CENTER);*/
pan1.setSize(90, 90);
jScrollPane1.setSize(100, 100);
this.add(jScrollPane1);
this.setContentPane(jScrollPane1);
jScrollPane1.add(pan1);
//cont.add(jb4,BorderLayout.WEST);
// cont.add(jb3,BorderLayout.EAST);
//将组件添加到pan1中,并对pan1做一些初始化
jScrollPane1.setViewportView(pan1);
pan1.setLocation(70, 70);
pan1.setLayout(null);
for (int i = 0; i < 20; i++) {
JButton aa = new JButton("one in pan1");
aa.setBounds(10, 30*(i+1), 100, 30);
pan1.add(aa);
pan1.validate();
jScrollPane1.validate();
}
/* pan1.add(jb1);
pan1.add(jb2);*/
//pan1.setBackground(Color.ORANGE);

this.setBounds(0, 0, 400, 400);
this.setVisible(true);
}

public static void main(String arg[]) {
NewClass test = new NewClass();

}
}

第1个回答  2011-09-17
import java.awt.BorderLayout;
import java.awt.Component;

import javax.swing.*;

public class Scroll extends JFrame{
public Scroll(){
init();
}
private void init() {
setTitle("滚动条测试类");
setSize(300,340);//宽,高
setLocation(330,250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(contentPane());
}
private Component contentPane() {
JPanel jp = new JPanel(new BorderLayout());
jp.add(BorderLayout.NORTH,tle());
jp.add(BorderLayout.CENTER,td());
jp.add(BorderLayout.SOUTH,dfs());
return jp;
}
private Component dfs() {
JPanel jp = new JPanel();
jp.add(new JLabel("滚动条"));
return jp;
}
private Component td() {
JPanel jp = new JPanel();
JTextArea jta = new JTextArea(10,15);
JScrollPane jsp = new JScrollPane(jta);
jp.add(jsp);
return jp;
}
private Component tle() {
JPanel jp = new JPanel();
jp.add(new JButton("滚动条"));
return jp;
}
public static void main(String[] args) {
Scroll sc = new Scroll();
sc.setVisible(true);
}
}
滚动面板有使用条件,就是要先把它添加到固定大小的一个文本组件里,才可以看到你想看的滚动效果。上面的代码是我给你写的,你运行程序,在文本框里写文本,你会发现滚动条会出现的。你去看看API吧。
第2个回答  2011-09-17
不要先创建JScrollPanel再放入到另外的组件上,放的时候再创建,比如你的以下几行代码jScrollPane1.add(pan1);
javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
cont.add(jScrollPane1, BorderLayout.CENTER);*/
合并成
cont.add(new JScrollPanel(pan1), BorderLayout.CENTER);*/
第3个回答  2011-09-17
查查资料吧,要不重新进入。

java swing jScrollPane1的问题,此程序的jScrollPane1无法滚动,如何让...
jp.add(new JButton("滚动条"));return jp;} public static void main(String[] args) { Scroll sc = new Scroll();sc.setVisible(true);} } 滚动面板有使用条件,就是要先把它添加到固定大小的一个文本组件里,才可以看到你想看的滚动效果。上面的代码是我给你写的,你运行程序,在文本框...

Java swing怎么搞出滚动条
增加滚动条的方法:\/\/分别设置水平和垂直滚动条总是出现 scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);\/\/分别设置水平和垂直滚动条自动出现 \/\/scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL...

java Swing 加入一个滚动条后不出东西了,为什么
要想将控件与JScrollPane关联起来,不能用add方法,必须使用setViewportView,使用add添加的话JScrollPane是不会显示的,也不会关联滚动功能 所以楼主也可以将jspContent.add(jtaContent); 改成jspContent.setViewportView(jtaContent);希望能帮到楼主

JAVA 如何使JScrollPane中的JTextArea自动滚动到最后一行
第一种方式:操控垂直滚动条, 把垂直滚动条移动到最后面即可 JTextArea jta = new JTextArea();jta.setText("添加很多行的文字");JScrollPane jsp = new JScrollPane(jta);jsp.getVerticalScrollBar().setValue(jsp.getVerticalScrollBar().getMaximum());\/\/控制垂直滚动条到最后面第二种方式:操作文...

java中JScrollPane控件怎样自动滚动到最后一行
用JScrollBar的setValue方法就可以了,给你举个例子,不过首先你要在JTextArea里面输入很多东西,使滑块出来然后才能设置值:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Test extends JFrame{ JScrollPane pane;JButton button;public Test(){ super();pane=new ...

Swing JPanel组件和 JScrollPane组件使用教程
JSerollPane是一个具有滚动条的面板,只能容纳一个组件。要添加多个组件,先将它们放入另一个容器中,然后将此容器添加到JSerollPane中。常用的构造方法在表11-7中列出。滚动策略的设置通过JScrollPane提供的成员方法完成,表11-8展示了滚动策略执行方法。JScrollPane的接口声明了多个常量属性,用于设定不同的...

Java的swing中JScrollPane修改滚动条样式
1 换look&feel try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");} catch (Throwable e) { e.printStackTrace();} 2 使用javafx,可以使用css自定义。如果只改变颜色就如上所说了,要想改变样式,需要,自己写 一个类继承 MetalScrollBarUI或者其他ScrollBar...

JPanel 和 JScrollPane 的问题。
JPanel 本身并不支持它可以被添加到JScrollPane 中。JScrollPane 中的组件需要实现一个接口,那就是javax.swing.Scrollable 只要是实现了这个接口的组件,才会默认被JScrollPane 支持并出现滚动条。但是你可以强制设置让它出现滚动条。那就是里头的JPanel 设置它的 setPerferedSize方法。这个方法将触发滚动条的...

java怎样设置表格滚动条
用swing类里的JScrollPane实现 JScrollPane(Component view,int vsbPolicy,int hsbPolicy)创建一个 JScrollPane,它将视图组件显示在一个视口中,视图位置可使用一对滚动条控制。滚动条策略指定滚动条在何时显示,例如,如果 vsbPolicy 为 VERTICAL_SCROLLBAR_AS_NEEDED,则只有在垂直查看无法完全显示时,垂直...

jscrollpane滚动条怎么让页面已加载滚动到指定位置
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ScrollIt extends JFrame { JScrollPane spContainer; JTextArea taedit; JButton bScroll; public ScrollIt() { spContainer=new JScrollPane(); taedit=new ...

相似回答
大家正在搜