用于固定组件位置和可滚动窗口的 Java GUI 布局

Posted

技术标签:

【中文标题】用于固定组件位置和可滚动窗口的 Java GUI 布局【英文标题】:Java GUI layout for fixed position of components and scrollable window 【发布时间】:2021-03-28 09:48:48 【问题描述】:

我想制作一个程序,使组件的行为如下图所示

TextField 和 SearchButton 位置固定,不移动也不改变大小 TextArea 也不会移动,但会根据窗口大小变大或变小

当 TextArea 不够大而无法一次显示所有文本时,我还希望它是“可滚动的”。

有什么建议吗? :)

【问题讨论】:

【参考方案1】:

布局管理的秘诀在于用不同的布局管理器嵌套面板来实现你想要的布局。

所以你从框架的默认 BorderLayout 开始。

然后为按钮创建一个面板并将该面板添加到框架中:

JPanel buttonPanel = new JPanel( new FlowLayout(...) );
buttonPanel.add( button1 );
..
frame.add(buttonPanel, BorderLayout.PAGE_START);

接下来将文本区域添加到框架中:

JTextArea textArea = new JTextArea(10, 30);
frame.add(new JScrollPane(textArea), BorderLayout.CENTER);

现在文本区域发生了两件事:

    它将调整大小以填充框架空间 滚动条会在需要时出现。

阅读 Layout Managers 上的 Swing 教程部分,了解更多信息和工作示例。

【讨论】:

@Corei7 很高兴它有帮助。不要忘记通过单击复选标记(答案旁边)来“接受”答案,这样人们就知道问题已经解决了。请参阅:What should I do when someone answers my question。 遗憾的是他忘记了:(

以上是关于用于固定组件位置和可滚动窗口的 Java GUI 布局的主要内容,如果未能解决你的问题,请参考以下文章

表格固定标题和可滚动正文

java GUI编程(swing)之四swing下拉框,列表框,滚动窗口

Python-Tkinter 窗口组件之Scale

jQuery 可拖放和可滚动的 div

怎么用js固定某个元素,让它不随页面的滚动而滚动,始终固定在窗口的某个位置?

怎么让DIV固定在页面的某个位置而不随着滚动条随意滚动?