小编Sta*_*tes的帖子

使用 GridBagLayout 正确渲染

在所附的屏幕截图中,我有一个JLabel,JTextField和一个JTabel包裹在JSchrollPane. 首先,JLabelJTextField 漂浮在中间很远的地方。上面有很大的空间。我想关闭那个空间。其次,我希望JTable/JSchrollPane填充整个宽度。它只占宽度的一半。并且它不显示表包含的 3 行。

如果我这样做,则会panFindStudent.add(table, gbcFindStud);显示行,但它看起来仍然不漂亮。我想使用JSchrollPane, 以便在表包含许多行/列时可以滚动

我还尝试将JLabel和包装JTexField在 aJPanel中,将 包装JSchrollPane在另一个 中JPanel,然后将这两个JPanels分别添加到JFrame像这样的

findStudentFrame.add(panelWithLabelAndTextField)
findStudentFrame.add(paneLWithShcrollPane)
Run Code Online (Sandbox Code Playgroud)

但这样做,似乎只添加了最后一个面板,而不是第一个面板

我最终也认为这GridBagLayout可能不是这项任务的正确选择,我尝试混合使用GridBagLayoutFlowLayout。它给出了更好的结果,但仍然不令人满意。但我认为最好学习用 解决这个问题GridBagLayout,以便我学习正确使用它。欢迎您提出建议,让我的结果/看起来更好。我已在底部添加了整个代码,因此您可以运行它并更改它。谢谢

在此输入图像描述

我想要与此类似的东西 在此输入图像描述

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import …
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager

1
推荐指数
1
解决办法
41
查看次数

标签 统计

java ×1

layout-manager ×1

swing ×1