请教关于滚动面板的问题

貌似掉线 广东海洋大学 Android研发工程师  2010-12-03 12:45:00
我想做出一个设置头像的面板,像QQ的那样,是在一个滚动面板中的。但是做出来后要不就是有些按钮没有显示出来,要不就是按钮变成长方形,比如里面图像是32*32的,按钮变成50*40之样的,很不好看。请教原因及解决方法。
下面是部分代码。

/*以下是Center界面*/
JPanel p2 = new JPanel();
// p2.setLayout(null); /*用这种布局按,再用jbutton.setBounds,但没法使得按钮可以拉动滚动条显示*/
p2.setLayout(new GridLayout(10,10));  //这种情况下按钮不是和图像一样大小的
JScrollPane p20 = new JScrollPane();
p20.setBounds(7,0,340,160);

for (int n=1,i=0; i<10; i++){
for(int j=0; j<10; j++,n++){
JButton jbutton = new JButton(new ImageIcon("./res/face/"+n+"-1.gif"));
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JButton jb = (JButton)e.getSource();
Icon icon = jb.getIcon();
img.setIcon(icon);
}
});

// jbutton.setSize(32,32);
// jbutton.setBounds(j*32,i*32,32,32);
p2.add(jbutton);
}
}
p20.setViewportView(p2);
p20.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
p20.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

……
jf.add(p20,"Center");//jf的设的大小是jf.setSize(345,400);
...全文
64 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
貌似掉线 2011-03-17
虽然你的回答不是我想要的答案,而且我的问题也已自己解决,不过还是要谢谢你。这么久才结帖,是因为我把这个问题给忘了,不好意思。
回复
sunyiz 2010-12-03
你用null布局无法拖动的原因是没有设置p2的大小
造成了p2的默认大小非常小,你的ScrollPane的滚动条不需要出来

加一句p2.setPreferredSize(new Dimension(320,320));
就能拖动了
回复
发动态
发帖子
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
社区公告
暂无公告