📜  摆动示例-ScrollPanes(1)

📅  最后修改于: 2023-12-03 15:10:12.038000             🧑  作者: Mango

摆动示例-ScrollPanes

在 Java GUI 编程中,我们经常需要向用户展示大量的信息,而有时会因为窗口大小限制无法一次展示完全。这时候,我们通常使用带有滚动条的面板来解决问题。Swing 提供了一个 JScrollPane 组件,它可以将其他组件包装在内,并实现带有水平和垂直滚动条的滚动面板。

以下是一个 JScrollPane 的示例,展示如何使用滚动面板来显示列表和表格:

列表

我们首先创建一个 JList 组件并为其填充数据。然后将其置于 JScrollPane 中,这样我们便可以通过滚动条在面板上移动列表内容。

import java.awt.*;
import javax.swing.*;

public class JScrollPaneListExample extends JFrame {
    public JScrollPaneListExample() {
        setTitle("JScrollPane List Example");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        String[] data = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5",
                "Item 6", "Item 7", "Item 8", "Item 9", "Item 10"};

        JList<String> list = new JList<>(data);
        JScrollPane scrollPane = new JScrollPane(list);

        add(scrollPane);

        setSize(200, 150);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) {
        new JScrollPaneListExample();
    }
}

代码运行结果如下:

JScrollPane List Example

表格

我们还可以将 JScrollPane 用于 JTable 组件。下面的示例中,我们创建了一个具有 100 行和 3 列的表格,并将其置于 JScrollPane 中。如果表格较大,用户可以使用滚动条在面板上移动表格内容。

import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class JScrollPaneTableExample extends JFrame {
    public JScrollPaneTableExample() {
        setTitle("JScrollPane Table Example");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        DefaultTableModel model = new DefaultTableModel();

        for (int i = 1; i <= 3; i++) {
            model.addColumn("Column " + i);
        }

        for (int i = 1; i <= 100; i++) {
            model.addRow(new Object[] { i + "-1", i + "-2", i + "-3" });
        }

        JTable table = new JTable(model);
        JScrollPane scrollPane = new JScrollPane(table);

        add(scrollPane);

        setSize(500, 150);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) {
        new JScrollPaneTableExample();
    }
}

代码运行结果如下:

JScrollPane Table Example

至此,我们已经详细介绍了如何使用 JScrollPane 组件。你可以根据实际需求自定义滚动面板的大小和布局,让用户可以方便地浏览大量信息。