请教关于滚动面板的问题

貌似掉线
博客专家认证
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);
...全文
133 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
貌似掉线 2011-03-17
  • 打赏
  • 举报
回复
虽然你的回答不是我想要的答案,而且我的问题也已自己解决,不过还是要谢谢你。这么久才结帖,是因为我把这个问题给忘了,不好意思。
sunyiz 2010-12-03
  • 打赏
  • 举报
回复
你用null布局无法拖动的原因是没有设置p2的大小
造成了p2的默认大小非常小,你的ScrollPane的滚动条不需要出来

加一句p2.setPreferredSize(new Dimension(320,320));
就能拖动了

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧