为了账号安全,请及时绑定邮箱和手机立即绑定

带有滚动条设置内容的JPanel不可调整大小

带有滚动条设置内容的JPanel不可调整大小

守着星空守着你 2022-09-22 13:48:31

我的目标是在框中显示通过UDP服务器接收的消息。为此,我创建了一个 JScroll 栏,并添加了一个 JPanel。当我收到消息和对象接收时,将创建扩展 JTextArea 并将其添加到 JPanel 中。我的问题是,当我在JPanel中显示太多消息时,它会自动调整我的文本区域的大小。如何设置 TextAreas 不可调整大小,以便即使消息在面板中不可见,也会添加消息,然后使滚动条最终有用。


这是我的测试代码来说明:


package test;


import java.awt.Color;

import java.awt.Dimension;

import java.awt.GridBagLayout;

import java.awt.GridLayout;


import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.ScrollPaneConstants;

import javax.swing.border.LineBorder;


public class test {


    public static void main(String args[]){

        JFrame frame  = new JFrame();


        JPanel RXCommand = new JPanel();

        RXCommand.setPreferredSize(new Dimension(500, 250));

        RXCommand.setBorder(new LineBorder(Color.black));

        RXCommand.setLayout(new GridLayout(0,1));


        JScrollPane scrollPane = new JScrollPane(RXCommand, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        scrollPane.setPreferredSize(new Dimension(500, 250));


        RXCommand.add(new ReceivedCommand("11:02:56", "5", "5", "command exemple", "command exemple"));

        RXCommand.add(new ReceivedCommand("11:02:56", "5", "5", "command exemple", "command exemple"));

        RXCommand.add(new ReceivedCommand("11:02:56", "5", "5", "command exemple", "command exemple"));

        RXCommand.add(new ReceivedCommand("11:02:56", "5", "5", "command exemple", "command exemple"));

        RXCommand.add(new ReceivedCommand("11:02:56", "5", "5", "command exemple", "command exemple"));

    }

}

查看完整描述

1 回答

?
守着一只汪

TA贡献1536条经验 获得超3个赞

JPanel RXCommand = new JPanel();

首先,变量名称不应以大写字符开头。论坛将突出显示类名,以使代码易于阅读。注意到论坛如何认为您的变量名称是类名吗?了解并遵循 Java 命名约定。

如何设置文本区域不可调整大小

RXCommand.setLayout(new GridLayout(0,1));

不要使用网格布局。网格布局将占用所有可用空间。因此,第一个组件占用了100%的空间。当你有两个时,每个都占50%。

请改用 或 .BoxLayoutGridBagLayout

阅读 Swing 教程中的布局管理器部分,以获取更多信息和示例,以帮助您入门。

然后使滚动条最终有用

上面安德鲁的评论已经回答了。


查看完整回答
反对 回复 4天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信