java 如何在JScrollPane里放入JPanel。

下面是我写的测试代码。
问题1:设置不了JScrollPane的背景色
问题2:我是想把JPanel放到JScrollPane。但是JPanel好像跑到后面去了。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class Test {

JFrame frame=null;
JPanel panel=null;
JScrollPane spanel=null;
JButton button=null;

public static void main(String[] args) {
new Test().windows();
}

void windows(){
frame=new JFrame();
Container con=frame.getContentPane();
spanel=new JScrollPane();
panel=new JPanel(new BorderLayout());
button=new JButton("发送");
con.setLayout(new BorderLayout());
con.add(spanel,BorderLayout.CENTER);
con.add(button,BorderLayout.SOUTH);
spanel.setBackground(Color.DARK_GRAY);
spanel.add(panel);
panel.setSize(800,50);
panel.setBackground(Color.BLUE);
frame.setDefaultCloseOperation(3);
frame.setSize(800, 450);
frame.setVisible(true);
}

}

调整一下位置先生成panel,然后spanel=new JScrollPane(panel);
JScrollPane不能用add追加内部panel,JScrollPane设置颜色没有意义
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-04
可以通过以下方法实现:
JPanel jp = new JPanel();//创建一个版面
JScrollPane jsp = new JScrollPane(jp);//将此面板加入到JScrollPane 下面
备注:swing技术中大部分的都是通过new的方式进行的对象创建,之后通过add方法来进行的添加或者是直接在new的对象中通过构造方法进行的添加。
第2个回答  2018-08-18
用spanel.setViewportView(panel),可以把你的panel面板当做组件添加到spanel面板中
相似回答