Swing中怎样给Jpanel添加滚动条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swing中怎样给Jpanel添加滚动条相关的知识,希望对你有一定的参考价值。

怎样给一个Jframe里面的Jpanle添加滚动条呀 因为这个Jpanle上会逐行动态的增加JLabel(点击按钮一次就会在Jpanel上增加个JLabel)现在就是需要当Jlabel增加到最底一行时 出现滚动条 我使用JScrollPanel老是提示“add parent to its` self ” 求大家帮忙

JScrollPanel本来就是动态出现的,如果超出长度就会出现。
你这样试试:
JScrollPanel j = new JScrollPanel();
j.add(jLabel1);
j.add(jLabel2);
j.add(jLabel3);
这样应该没问题吧。
参考技术A 你的层级关系应该是这样的:
顶层容器(如frame、dialog)→JScrollPane→JPanel→JLabel
或者按楼上的说法:
顶层容器(如frame、dialog)→JPanel→JScrollPane→JLabel本回答被提问者采纳

给jpanel 添加上下滚动条

只添加上下,不用左右的。。

参考技术A 用JScrollPane可以哈
JScrollPane pane = new JScrollPane(JPanel);
原来的 add(JPanel)改为add(pane)

给你个例子哈。。

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class TestJScrollPane extends JFrame

private static final long serialVersionUID = 1L;

public TestJScrollPane()
super("TestJScrollPane");
this.setLayout(null);
this.setBounds(200, 200, 200, 300);

JLabel label = new JLabel("深入浅出Java Swing 程序设计");

JPanel panel = new JPanel();
panel.add(label);

JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setBounds(100, 100, 100, 300);
/**
* 要加滚动条就要让panel的宽高大于scrollPane的宽高..你只要上下的..只要高大于就行了..
*/
panel.setPreferredSize(new Dimension(scrollPane.getWidth() - 50, scrollPane.getHeight()*2));
this.add(scrollPane);
panel.revalidate(); //告诉其他部件,我的宽高变了
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



public static void main(String[] args)
new TestJScrollPane();

参考技术B 用JScrollBar

它的构造方法有个是创建垂直滚动条的

以上是关于Swing中怎样给Jpanel添加滚动条的主要内容,如果未能解决你的问题,请参考以下文章

java swing编程问题:一个jframe中添加一个jpanel后,为jpanel添加一个滚动条,当jpanel中内容过多时滑动

java swing JPanel添加在JScrollPane上,有垂直的滚动条,可是滚动条拉到底,只显示了JPanel的一部分。

jpanel 中滚动条添加

javaswing 带滚动条文本域边框问题

Java swing怎么搞出滚动条

jpanel放入JScrollPane 高度滚动条不显示