【发布时间】:2016-01-14 02:17:08
【问题描述】:
我有一个带有多个面板的 JFrame。其中之一应该包含一个给定大小的 JTextArea,如果文本超出该区域,它可以滚动,并根据框架大小调整大小。
问题是,当面板是 JPanel 的实例时,它看起来像我想要的窗口或全屏大小,只要内容不超过当前区域,当它超过时,它需要给其他组件的空间,使它们在框架中缩小(这里应该显示滚动条)。
另一方面,当我使用 JScrollPane 时,我无法让它具有与 JPanel 相同的行为,同时保持适当的大小。实际上它似乎适应了它的内容,因为它是空的,所以它只是一些像素宽。
我怎样才能实现我正在寻找的东西? 提前致谢
按照保持正确大小的代码(JPanel):
add(new JPanel(){
{
input = new JTextArea(20,20);
input.setLineWrap(true);
input.setBackground(Color.WHITE);
input.setBorder(cb);
this.setLayout(new BorderLayout());
//this.setPreferredSize(new Dimension(20,20));
this.setBorder(eb);
this.add(input);
}
});
【问题讨论】:
-
这应该会引导您找到答案:stackoverflow.com/questions/7229226/…
-
所以你是说 JPanel 给你正确的行为?或者两者都不做?在我们推荐解决方案之前,我们必须清楚问题是什么/期望的行为是什么。
-
this.add(input);- 应该是:this.add(new JScrollPane(input));- 如果这没有帮助,那么发布一个正确的 SSCCE 来证明问题。 -
最后一条评论很有魅力!太感谢了!我如何将此标记为已回答(因为没有回答响应,只有 cmets?:D
标签: java swing jpanel jscrollpane jtextarea