📅  最后修改于: 2023-12-03 15:10:12.038000             🧑  作者: Mango
在 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
用于 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
组件。你可以根据实际需求自定义滚动面板的大小和布局,让用户可以方便地浏览大量信息。