首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对齐不同MigLayout面板中的列?

如何对齐不同MigLayout面板中的列?
EN

Stack Overflow用户
提问于 2022-04-19 16:39:34
回答 2查看 60关注 0票数 1

我一直在开发一个GUI,在它最基本的情况下,有两个面板,其中一个充当包含第二个的表的标题。我使用两个面板,因为在某些情况下可能有许多行,所以第二个面板通过一个Jscrollbar。这将产生“粘性”顶行的效果,并能够滚动到底部行。值得注意的是,第二个面板的组件是JLabels、JCheckBoxs和JTextAreas。

所有这些都是为了说明我的问题是,我找不到一种方法让标签和数据对齐。我尝试过在MigLayout中使用组件约束和列约束的许多不同方法,但都没有效果。有人对我如何做到这一点有任何想法吗?

下面是目前情况的一个例子:

下面也是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class help implements ActionListener {

public help(ArrayList<Integer> in){
    fighters = in;
    frame = new JFrame();
    frame.setTitle("");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    MigLayout layout = new MigLayout(
            "wrap 9",
            "[175, grow] [175, grow] [175, grow] [175, grow] [175, grow] [175, grow] [175, grow] " +
                    "[175, grow] [175, grow]",
            ""
    );
    MigLayout layout2 = new MigLayout(
            "wrap 9",
            "[grow] [grow] [grow] [grow] [grow] [grow] [grow, fill] " +
                    "[grow] [grow]",
            ""
    );

    JPanel panel = new JPanel(layout2);
    JPanel top = new JPanel(layout2);
    data = new Component[in.size()][9];
    for (int i = 0; i < in.size(); i++) {
        data[i][7] = new JLabel("Label 1 Row " + i);
        panel.add(data[i][7]);
        data[i][0] = new JLabel();
        panel.add(data[i][0]);
        data[i][1] = new JLabel("Label 2 Row " + i);
        panel.add(data[i][1]);
        data[i][2] = new JLabel("Label 3 Row " + i);
        panel.add(data[i][2]);
        data[i][3] = new JLabel("Label 4 Row " + i);
        panel.add(data[i][3]);
        data[i][4] = new JLabel("Label 5 Row " + i);
        panel.add(data[i][4]);
        data[i][5] = new JCheckBox();
        JCheckBox a = (JCheckBox) data[i][5];
        a.addActionListener(this);
        panel.add(data[i][5]);
        data[i][6] = new JCheckBox();
        JCheckBox r = (JCheckBox) data[i][6];
        r.addActionListener(this);
        panel.add(data[i][6]);
        data[i][8] = new JTextArea("", 5, 20);
        panel.add(data[i][8]);

    }
    top.add((new JLabel("Label 1")));
    top.add(new JLabel("Label 2"));
    top.add(new JLabel("Label 3"));
    top.add(new JLabel("Label 4"));
    top.add(new JLabel("Label 5"));
    top.add(new JLabel("Label 6"));
    top.add(new JLabel("Label 7"));
    top.add(new JLabel("Label 8"));
    top.add(new JLabel("Label 9"));
    scrollBar = new JScrollPane(panel);
    scrollBar.setPreferredSize(new Dimension(1000, 600));
    scrollBar.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    scrollBar.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    frame.add(top, BorderLayout.NORTH);
    frame.add(scrollBar);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {

}
}

主要班:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Main {
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    for (int i = 0; i < 50; i++) {
        list.add(i);
    }
    new help(list);
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-21 18:54:00

有人对我如何做到这一点有任何想法吗?

这将是完美的JTable

忘记所有面板和布局,创建一个表示列名和数据的TableModel。将模型添加到表的构造函数中。创建适当的呈现器和编辑器(单选按钮、复选框、组合框、文本字段和区域等)。对于所需的列。

将表配置为自动排序,您将为用户提供使用布局无法实现的功能。

有关上述所有内容的更多细节,请参见如何使用表

票数 1
EN

Stack Overflow用户

发布于 2022-04-21 06:28:45

尝试以下几点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JPanel panel = new JPanel(new GridLayout(9, 9));
panel.setPreferredSize(new Dimension(800, 20*9));
JPanel top = new JPanel(new GridLayout(1, 9));
top.setPreferredSize(new Dimension(800, 20));

我不知道你到底想做什么,但也许JTable能帮你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71932847

复制
相关文章
LeetCode 1262. 可被三整除的最大和(DP)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/greatest-sum-divisible-by-three 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
6240
LeetCode 1262. 可被三整除的最大和(DP)
LeetCode 1015. 可被 K 整除的最小整数(数学)
1. 题目 给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。 返回 N 的长度。如果不存在这样的 N,就返回 -1。 示例 1: 输入:1 输出:1 解释:最小的答案是 N = 1,其长度为 1。 示例 2: 输入:2 输出:-1 解释:不存在可被 2 整除的正整数 N 。 示例 3: 输入:3 输出:3 解释:最小的答案是 N = 111,其长度为 3。 提示: 1 <= K <= 10^5 来源:力扣(LeetCode) 链接:https://leetcode-
Michael阿明
2020/07/13
9400
LeetCode 1018. 可被 5 整除的二进制前缀
给定由若干 0 和 1 组成的数组 A。 我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。
Michael阿明
2020/07/13
3310
LeetCode 974. 和可被 K 整除的子数组(哈希map)
给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。
Michael阿明
2020/07/13
6140
Leetcode 1010. 总持续时间可被 60 整除的歌曲
返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。
zhipingChen
2020/01/02
5700
LeetCode刷题DAY 25:和可被 K 整除的子数组
给定一个整数数组A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。如输入
三猫
2020/06/02
4500
LeetCode 1010. 总持续时间可被 60 整除的歌曲(哈希)
返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。
Michael阿明
2020/07/13
5760
LeetCode 1010. 总持续时间可被 60 整除的歌曲(哈希)
整除的尾数_整除数
一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
全栈程序员站长
2022/11/15
6950
力扣刷题笔记--6220. 可被三整除的偶数的平均值
给你一个由正整数组成的整数数组 nums ,返回其中可被 3 整除的所有偶数的平均值。
C_H
2022/11/15
2320
整除的尾数(整除问题) - HDU 2099
最近在写POJ 2449,暂时还没写完,目前上卷的题目基本都涉及到了,后面会接着加强,特别是动态规划方面的题目,因为比较灵活也比较难。
ACM算法日常
2018/08/07
9280
整除的尾数(整除问题) - HDU 2099
ABC的整除问题
给定三个非负整数 A,B,C,且保证 A\le B,C\ne 0,求在区间 [A, B] 中,存在多少个整数可以被 C 整除?
浪漫主义狗
2023/03/01
2.3K0
Python中的整除
#这是浮点除法, 得到的结果是浮点数(float) var = 3/2 #得到的结果是整数1, 这是整除类似于某些编程语言的"\" var = 3//2 #这是四舍五入 var1 = round(3/2) #结果为2 var2 = round(2.8/2) #结果为1 import math var = 3/2 var = math.floor(var) #结果为1, 这个floor函数意思是取得小于等于这个数的整数
py3study
2020/01/10
1.6K0
整除计算器_0 整除
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
全栈程序员站长
2022/09/22
7180
python整除和取余写法_Python的整除和取余[通俗易懂]
参考:https://blog.csdn.net/sun___M/article/details/83142126
全栈程序员站长
2022/09/01
1.8K0
[每日一题]数字整除
C语言的奇葩之一就是明明可以直接除以17解决的问题偏偏要搞得这么麻烦 但我们能有什么办法呢,只能说是对思想的锻炼了呗! 题目描述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。 例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。 输入 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<
编程范 源代码公司
2018/04/18
1.1K0
整除个数
1、2、3… …n这n(0<n<=1000000000)个数中有多少个数可以被正整数b整除。
书童小二
2018/09/03
7190
HDOJ 2099 整除的尾数
Problem Description 一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
谙忆
2021/01/20
5800
基于逻辑规则的图谱推理
导读: 近年来,知识图谱在众多行业场景被大量应用,例如推荐、医疗。为了构造尽可能完备的图谱,知识图谱的推理工作也成为学术届和工业界的一个重要研究课题。来自Mila人工智能实验室的瞿锰博士,给大家分享了他们在图谱推理任务方向的一个研究:基于逻辑规则的图谱推理(RNNLogic: Learning Logic Rules for Reasoning on Knowledge Graphs),研究结果显示RNNLogic可以很好地兼顾图谱推理任务的模型效果和可解释性的问题。
DataFunTalk
2022/05/02
1.5K0
整除分块思想
对于求形如 \(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor\) 的值,就需要用到整除分块,否则当n很大时就会超时。在普通的一个一个的计算时可以发现很多\(\lfloor\frac{n}{i}\rfloor\)的值成块状分布,最终的到的规律是发现对于每一个值相同的块,它的最后一个数就是n/(n/i)
_DIY
2019/08/23
9300
点击加载更多

相似问题

可被2整除: Python

53

关于:a的个数可被6整除,b的数目可被8整除

16

递归法计算可被2整除的元素

120

可被2整除的数字计数器

35

生成可被2整除的随机数

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文