JPanel 和 JScrollPane 的问题。

//问题不好描述,就是JPanel里的内容无法完全显示,代码如下,感激不尽。importjava.awt.BorderLayout;importjava.awt.Dime... //问题不好描述,就是JPanel 里的内容无法完全显示,代码如下,感激不尽。

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.util.ArrayList;

import javax.swing.*;

public class SimpleTest {

public static void main(String args[])
{
JFrame mainFrame = new JFrame();
mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBounds(1000, 60, 300, 600);

JButton addContactBtn = new JButton("add");
JButton informationBtn = new JButton("info");
JButton newsBtn = new JButton("news");

JLabel titleLabel = new JLabel(new ImageIcon("title.jpg"));
titleLabel.setSize(300, 200);
JPanel titlePanel = new JPanel();
titlePanel.add(informationBtn);
titlePanel.add(titleLabel);
titleLabel.add(addContactBtn);

JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JScrollPane mainScroll = new JScrollPane(mainPanel);
mainPanel.setPreferredSize(new Dimension(300, 400));
mainScroll.setSize(300, 200);

ArrayList<JLabel> contacts= new ArrayList<JLabel>();
for (int i = 0; i < 10; i++)
{
JLabel temp = new JLabel("Contact" + i, new ImageIcon("contact.jpg"), JLabel.HORIZONTAL);
temp.setSize(250, 50);
contacts.add(temp);
}

mainFrame.getContentPane().add(titlePanel, BorderLayout.NORTH);
mainFrame.getContentPane().add(mainScroll, BorderLayout.SOUTH);
for (int i = 0; i < 10; i++)
{
mainPanel.add(contacts.get(i));
}
}
}
setPerferedSize在上面的代码中用过了,滚动条出现了,不过滚不动,跟没有一样。

happy_crow兄说的我已经知道了,我问的不是这个.......
展开
 我来答
歪瑞顾K
推荐于2016-10-03 · TA获得超过2905个赞
知道大有可为答主
回答量:2731
采纳率:33%
帮助的人:2211万
展开全部
JPanel 本身并不支持它可以被添加到JScrollPane 中。
JScrollPane 中的组件需要实现一个接口,那就是javax.swing.Scrollable
只要是实现了这个接口的组件,才会默认被JScrollPane 支持并出现滚动条。

但是你可以强制设置让它出现滚动条。那就是里头的JPanel 设置它的 setPerferedSize方法。
这个方法将触发滚动条的出现。
百度网友bca46e38f
2010-11-25 · 超过23用户采纳过TA的回答
知道答主
回答量:45
采纳率:100%
帮助的人:50.5万
展开全部
mainFrame.setVisible(true); 这一句放在最后

先把frame的属性设置完毕,该添加的组件添加完了,再执行mainFrame.setVisible(true);
这样,就不存在刷新的问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彦同118
2010-12-05 · TA获得超过1712个赞
知道小有建树答主
回答量:1057
采纳率:0%
帮助的人:791万
展开全部
jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qjbrh53
2010-11-26 · TA获得超过381个赞
知道小有建树答主
回答量:602
采纳率:0%
帮助的人:390万
展开全部
jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lg_asus
2010-12-02 · TA获得超过302个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:232万
展开全部
yangyu125 高人啊

解决了我出现的问题,在此感谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式