gpt4 book ai didi

java - 如何滚动我的 JPanel

转载 作者:行者123 更新时间:2023-12-01 09:03:20 25 4
gpt4 key购买 nike

SCREENSHOT

我正在使用以下代码创建银行变动列表。 pane 是一个 JPanel,array 是一个 ArrayList,分别包含数量和描述数据。设置是一个小图标,允许您修改每个 Action 。

MouseClass 是一个扩展 MouseAdapter 的类,我创建该类是为了向 mouseClicked 方法添加“k”索引。我是 java gui 编程的新手。我想知道是否有一种快速方法可以将滚动添加到我的面板

    JLabel[] movement = new JLabel[array.size()];
JLabel[] description = new JLabel[array.size()];
JLabel[] data = new JLabel[array.size()];
JLabel[] setting = new JLabel[array.size()];

System.out.println(array.size());


int i = 0;
for(int k=0; k<array.size(); k++){
movement[k] = new JLabel("");
movement[k].setForeground(SystemColor.text);
movement[k].setFont(new Font("Segoe UI", Font.PLAIN, 20));
movement[k].setBounds(17, i, 145, 30);
movement[k].setText(array.get(array.size() - k - 1).getAmount() + "€");
panel.add(movement[k]);

description[k] = new JLabel("");
description[k].setForeground(SystemColor.text);
description[k].setFont(new Font("Segoe UI", Font.PLAIN, 20));
description[k].setBounds(187, i, 274, 30);
description[k].setText(array.get(array.size() - k - 1).getDescription());
panel.add(description[k]);

data[k] = new JLabel("");
data[k].setForeground(SystemColor.text);
data[k].setFont(new Font("Segoe UI", Font.PLAIN, 20));
data[k].setBounds(478, i, 145, 30);
data[k].setText(array.get(array.size() - k - 1).getDate());
panel.add(data[k]);

setting[k] = new JLabel();
setting[k].setIcon(new ImageIcon(List.class.getResource("/it/andreavaiuso/financemanager/images/edit.png")));
setting[k].setForeground(SystemColor.text);
setting[k].setFont(new Font("Segoe UI", Font.PLAIN, 20));
setting[k].addMouseListener(new MouseClass(array.size() - k - 1) {
@Override
public void mouseClicked(MouseEvent arg0) {
Modify mdf = new Modify(this.index);
mdf.setVisible(true);
dispose();
}
});
setting[k].setBounds(640, i, 82, 30);
panel.add(setting[k]);

i += 40;



}

但我不知道如何滚动它。我已经尝试过 JScrollPane 但不起作用!我确信有一种最简单的方法可以将这些项目添加到我的面板中...

最佳答案

I've tried woth JScrollPane but don't work!

嗯,我看到很多带有 setBounds(...) 的代码,这意味着您正在使用空布局。

不要使用空布局。 Swing 被设计为与布局管理器一起使用。事实上,滚动 Pane 仅在与布局管理器一起使用时才起作用,因为滚动 Pane 需要知道面板的首选大小,以便它可以确定何时使用滚动条。

我还建议您也应该使用 JTable 来完成类似的事情。它更加高效,因为您不需要为每行数据创建单独的组件。阅读 Swing 教程中关于 How to Use Tables 的部分了解更多信息和示例。

关于java - 如何滚动我的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41494946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com